我是这项技术的新手,所以如果问题太简单,我会提前道歉。
我正在使用self.cleaned_data来获取用户输入的选定数据。它在调用clean时起作用,但不在我的save方法上。
这是代码
Forms.py
def clean_account_type(self):
if self.cleaned_data["account_type"] == "select": # **here it works**
raise forms.ValidationError("Select account type.")
def save(self):
acc_type = self.cleaned_data["account_type"] # **here it doesn't, (NONE)**
if acc_type == "test1":
doSomeStuff()
当我打电话保存时,为什么不能正常工作?
这是我的views.py
def SignUp(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
提前致谢。
答案 0 :(得分:6)
表单上的clean_<field_name
方法必须返回清除值或引发ValidationError
。来自文档https://docs.djangoproject.com/en/1.4/ref/forms/validation/
就像上面的常规字段clean()方法一样,这个方法应该如此 无论是否更改了任何内容,都会返回已清理的数据 不
简单的改变是
def clean_account_type(self):
account_type = self.cleaned_data["account_type"]
if account_type == "select":
raise forms.ValidationError("Select account type.")
return account_type