我正在做一个艰苦的django项目,我再次陷入困境。在执行ModelForm时,我具有此表单。因此,我想在assign
字段中过滤查询集,所以如果我执行assign.objects.filter(user_id=1)
,它将向每个用户显示此查询集,但我想将请求用户放入此查询集中。如何访问当前的请求用户?
class SomeModelForm(forms.ModelForm):
assign = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
queryset=Assign.objects.all(),
)
class Meta:
model = SomeModel
fields = '__all__'
答案 0 :(得分:3)
将一个另外的user
对象传递到您的表单,然后根据用户进行过滤。
class SomeModelForm(forms.ModelForm):
assign = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
queryset=Assign.objects.none(),
)
class Meta:
model = SomeModel
fields = '__all__'
def __init__(self, *args, **kwargs):
user = kwargs.pop('user', None)
super().__init__(*args, **kwargs)
if user:
self.fields['assign'].queryset = Assign.objects.filter(user=user)
form = SomeModelForm(user=request.user)
答案 1 :(得分:0)
您只需编写即可
username = request.user.username
print(username)
它将打印当前登录的用户名。