python – Django-filter’__in’查找

python – Django-filter’__in’查找,第1张

概述我正在使用 https://github.com/alex/django-filter/的django-rest-framework,但问题主要是关于django-filter.我无法理解如何使用“__in”查找过滤器. 例如,我有模型: class Book(models.Model): name = models.CharField(max_length=100)class Book 我正在使用 https://github.com/alex/django-filter/的django-rest-framework,但问题主要是关于django-filter.我无法理解如何使用“__in”查找过滤器.

例如,我有模型:

class Book(models.Model):   name = models.CharFIEld(max_length=100)class BookVIEw(vIEwsets.ReadonlyModelVIEwSet):   serializer_class = BookSerializer()   model = Book   filter_fIElds = ('ID','name')

我不能像这样使用网址

/v1/books/?ID__in=1,2,3

找到ID为1,2或3的书籍

解决方法 本期讨论的问题是: https://github.com/alex/django-filter/issues/137#issuecomment-77697870

建议的解决方案是创建自定义过滤器,如下所示:

from django_filters import Filterfrom django_filters.fIElds import Lookupfrom .models import Productclass ListFilter(Filter):    def filter(self,qs,value):        value_List = value.split(u',')        return super(ListFilter,self).filter(qs,Lookup(value_List,'in'))class ProductFilterSet(django_filters.FilterSet):    ID = ListFilter(name='ID')    class Meta:        model = Product        fIElds = ['ID']

你可以写下面的内容:

products/?ID=7,8,9

总结

以上是内存溢出为你收集整理的python – Django-filter’__in’查找全部内容,希望文章能够帮你解决python – Django-filter’__in’查找所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存