django 表单过滤字段查询集

django form filter field queryset

如何过滤表单的字段查询集?经过一番搜索,我发现这样就完成了。但是我在这里遇到错误。

class TbPeopleEntranceRightForm(forms.ModelForm):

    def __init__(self, user=None, *args, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)
        print(self.user)
        self.fields['user'].queryset = self.user

    class Meta:
        model = TbPeopleEntranceRight
        fields = ['user', 'area', 'room']

'TbUser' object has no attribute 'all'

self.fields['user'].queryset = self.user

此处 self.fields["user"].queryset 需要一个您提供用户实例的查询集。

你可能想做这样的事情。

class TbPeopleEntranceRightForm(forms.ModelForm):
    def __init__(self, user=None, *args, **kwargs):
        self.user = user
        super().__init__(*args, **kwargs)
        print(self.user)
        self.fields['user'].queryset = YourUserModel.objects.filter(id=self.user.id)

    class Meta:
        model = TbPeopleEntranceRight
        fields = ['user', 'area', 'room']