【发布时间】:2016-04-29 11:47:30
【问题描述】:
我正在将 Django Rest Framework 升级到当前版本。有了新的过滤功能,我发现如果有多个外键字段,加载初始页面需要很长时间(我在下面使用的示例是 event 是 @ 上的 FK 987654324@ 型号)。也就是说,我正在使用filter_class 并在元字段列表中传递 FK:
# my viewset
class TicketViewSet(ModelViewSet):
queryset = Ticket.objects.all()
filter_class = api_filters.TicketFilterSet
#my filterset
class TicketFilterSet(FilterSet):
event = django_filters.NumberFilter(name="event")
class Meta:
model = Ticket
fields = ["event", ]
在此示例中,传递这样的 URL 有效: http://website.com/api/tickets/?event=19919
此网址不会: http://website.com/api/tickets/?event=http://website.com/api/events/19919/
我希望能够接受任何一个。显然NumberFilter 仅适用于数字,而不适用于 URL——我如何使用可以接受任何一种格式的过滤器?
【问题讨论】:
标签: python django django-rest-framework django-filter django-filters