gpt4 book ai didi

python - 在 Django-Filter 中限制一个字段的查询集

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:35 24 4
gpt4 key购买 nike

我有一个 django-filter FilterSet,它采用用户保存的链接的查询集。 Tags 是一个 ManyToManyField,我想将该选择范围缩小到由同一用户创建(拥有)的标签。完全不知所措 - 文档没有那么广泛。

class LinkFilter(django_filters.FilterSet):

class Meta:
model = Link
fields = ['title', 'domain', 'tags', 'date', 'modified']

https://github.com/alex/django-filter/

最佳答案

我之前没有使用过 django-filter,但是查看文档,您应该能够执行如下操作。您需要在 LinkFilter 的构造函数中为关键字参数 user 传递要过滤的用户。否则它将继续显示所有用户的所有标签。我还猜测 Link 类上的 User ForeignKey 属性被命名为 created_by

class LinkFilter(django_filters.FilterSet):
class Meta:
model = Link
fields = ['title', 'domain', 'tags', 'date', 'modified']

def __init__(self, data=None, queryset=None, prefix=None, strict=None, user=None):
super(LinkFilter, self).__init__(data=data, queryset=queryset, prefix=prefix, strict=strict))
if user:
self.filters['tags'].filter(created_by=user)

关于python - 在 Django-Filter 中限制一个字段的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21919895/

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