gpt4 book ai didi

python - 将自定义过滤器与 Django ModelChoice 过滤器一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:58 26 4
gpt4 key购买 nike

我正在尝试创建使用 django-filters 的过滤器方法

请参阅下面的模型示例:

class Chicken(TimeStampedModel):
eggs = ForeignKey(Egg)

class Egg(TimeStampedModel):
hatched = BooleanField(default=False)

查看我当前的过滤器设置示例:

class ChickenFilter(FilterSet):
eggs__contains = ModelChoiceFilter(name="eggs", method='hatched_eggs', queryset=Eggs.objects.all())

def hatched_eggs(self, queryset, name, value):
print "We got eggs"
return queryset.filter(eggs__hatched=True)

问题是该方法甚至不打印 We got eggs 当我点击 url 时。它只返回一个空的查询集。

最佳答案

我是这样做的:

在我的网址中,我发送了 ?ids=1,2,3,4

class MyFilter(filters.FilterSet):
ids = django_filters.CharFilter(method='ids__in')

def ids__in(self, queryset, value, *args, **kwargs):
try:
if args:
ids = args[0].split(',')
ids = [int(_id) for _id in ids]
queryset = queryset.filter(id__in=ids)
except ValueError:
pass
return queryset

关于python - 将自定义过滤器与 Django ModelChoice 过滤器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43009538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com