我有一张表格:
class CreateConferenceForm(forms.ModelForm):
class Meta:
model = Conference
fields = ['name', 'participants']
def clean(self):
cleaned_data = super(CreateConferenceForm, self).clean()
if not request.user.id in cleaned_data.get('participants'):
raise forms.ValidationError('Error')
但我不知道如何从视图中导入请求对象,因为方法is_valid没有其他参数。我怎么能这样做?
答案 0 :(得分:2)
为您的表单提供__init__
方法,允许您传递用户:
def __init__(self, user, *args, **kwargs):
self.user = user
super().__init__(*args, **kwargs)
现在您可以在清洁中使用self.user
。无论您在何处创建表单,请记住传递用户,例如:视图中的form = CreateConferenceForm(request.user, request.POST)
。