gpt4 book ai didi

python - Django Rest Framework 月份和年份作为 NumberFilter

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:06 25 4
gpt4 key购买 nike

我正在尝试在 django Rest Framework api 中过滤模型查询集,当我使用 django_filters.NumberFilter(**) 时,我收到此错误。

如果我编写自己的过滤器,我会过滤所有结果,但使用 NumberFilter 我无法使其工作。

所以,这是我的代码:型号

class Entry(EntityBase):
title = models.CharField(max_length=50)
description = models.TextField(max_length=200)
start = models.DateTimeField()
end = models.DateTimeField(null=True)
all_day = models.BooleanField()
involveds = models.ManyToManyField(Person, null=True)
by = models.ForeignKey(User)

过滤器组

class EntryFilter(filters.FilterSet):
#ym = MonthYearFilter(name='start')
m = django_filters.NumberFilter(name='start__month')
y = django_filters.NumberFilter(name='start__year')

class Meta:
model = Entry

View 集

class EntryViewset(viewsets.ModelViewSet):
queryset = Entry.objects.all()
serializer_class = EntrySerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_class = EntryFilter

错误

Unsupported lookup 'month' for DateTimeField or join on the field not permitted.

最佳答案

只需这样更新您的过滤器即可:

class EntryFilter(filters.FilterSet):
m = django_filters.NumberFilter(name='start', lookup_expr='month')
y = django_filters.NumberFilter(name='start', lookup_expr='year')

您还可以在查找表达式中使用 __gt、__gte、__lt .. 等。

希望有帮助。

关于python - Django Rest Framework 月份和年份作为 NumberFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33358120/

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