[英]Django filters, set value
我有代码:
import django_filters
class BasicFilter(django_filters.FilterSet):
class Meta:
model = MyDataModel
fields = []
class SiteFilter(BasicFilter):
name = django_filters.ModelMultipleChoiceFilter(
queryset=MySiteModel.objects.all(), help_text=''
)
class Meta(ReportFilter.Meta):
fields = ['name']
我只需要使用user = request.user获取(在SiteFIlter中)记录。 像这样:
class SiteFilter(BasicFilter):
name = django_filters.ModelMultipleChoiceFilter(
queryset=MySiteModel.objects.filter(user=current_user), help_text=''
)
class Meta(ReportFilter.Meta):
fields = ['name']
而且我不知道如何从其他地方获取此用户。 我已经试过了:
class SiteFilter(BasicFilter):
name = django_filters.ModelMultipleChoiceFilter()
def __init__(self, *args, **kwargs):
if "current_user" in kwargs:
name = django_filters.ModelMultipleChoiceFilter(
queryset=MySiteModel.objects.filter(user=kwargs["current_user"]),
help_text=''
)
class Meta(ReportFilter.Meta):
fields = ['name']
当我创建此过滤器时:site_filter = SiteFilter(current_user =“昵称”)
但只有我所拥有的是:
__init__() got an unexpected keyword argument 'current_user'
看你的领域。 您希望在哪里插入“ current_user”? 那看起来无效。 我不太了解过滤器,但是仅仅通过查看您的代码,也许您想要
site_filter = SiteFilter(name="nickname")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.