Django过滤指定集合的选项

2024-04-23 15:41:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用django-filter在我的站点的列表视图上提供用户过滤,例如

class MyModel(models.Model):
    fruit = models.ForeignKey(Fruit)
    price = models.CharField(...)
    release_date = models.DateTimeField(...)

class MyFilter(filters.FilterSet):
    ...

    class Meta:
        model = MyModel
        fields = ['fruit', 'price', 'release_date']

def my_banana_orange_view(request):
   ...
   queryset = MyModel.objects.filter(fruit__name__in=['banana', 'orange'])
   filter = Filter(request.GET, queryset=queryset)

   return render(request, 'my_template.html', {'queryset': queryset, 'filter': filter})

现在,如果我这样做,我可以只显示MyModel条目的香蕉或橙色关系,但是MyFilter仍然提供Fruit模型中所有水果的选项。我无法找到一个与之相关的输入,但无法找到一个相关的选项。有人存在吗?在

否则,我想我必须重写过滤器来执行以下操作:

^{pr2}$

这似乎有点过分了。只显示基于输入查询集的选项似乎是可取的行为,但我找不到任何相关文档。有什么好办法吗?感谢任何帮助!在


Tags: datereleasemodelsrequestmy选项filterprice
1条回答
网友
1楼 · 发布于 2024-04-23 15:41:44

FilterSet的第一个参数是data,第二个参数是queryset。在

在你的观点中,试着按照filter = MyFilter(data=request.GET, queryset=queryset)的思路来做一些事情。在

参见:http://django-filter.readthedocs.io/en/develop/guide/usage.html#the-view

相关问题 更多 >