我想在django表单的clean函数中获取请求的用户,但我无法做到这一点。我试着通过简单地说self.request.user,它可以在视图中工作,但不能在表单中工作。py,有人知道如何在djnago表单中获取请求的用户吗
forms.py
class KycModelForm(forms.ModelForm):
class Meta:
model = KycModel
fields = '__all__'
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(KycModelForm, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data = super().clean()
user = User.objects.get(username=self.request.user)
print(user)
views.py
class KycFormCreateView(CreateView):
form_class = KycModelForm
model = KycModel
template_name = "accounts/kyc/new_kyc.html"
def form_valid(self, form):
user_kyc = form.save(commit=False)
user_kyc.owner = self.request.user
user_kyc.save()
return super().form_valid(form)
你从来没有在一开始就构造一个带有请求的表单。您应通过以下方式传递此消息:
在
clean
函数中,您不需要查询用户self.request.user
是一个用户对象,因此您可以直接使用self.request.user
:相关问题 更多 >
编程相关推荐