0
對於提出一個問題的道歉很明顯,這個問題很簡單,我個人做錯了,但我不能在這裏找到bug ...Django錯誤「Boundfield沒有屬性條」:分配給表單字段對象本身的值
我有一個名爲fixer_signup_form的Django表單,它提供了一個名爲fixer_intro的視圖。
class fixer_signup_form(forms.Form):
contact_first_name = forms.CharField(max_length=128, required=True)
contact_last_name = forms.CharField(max_length=128, required=True)
company_name = forms.CharField(max_length=256, label='Company Name (Optional)')
email = forms.EmailField(required=True)
password = forms.CharField(max_length=1024, widget=forms.PasswordInput, required=True)
password2 = forms.CharField(max_length=1024, widget=forms.PasswordInput, required=True, label='Repeat Password')
zip_code = forms.CharField(max_length=8, required=True)
def clean(self):
username = self.cleaned_data["email"]
password = self.cleaned_data["password"]
password2 = self.cleaned_data["password2"]
zip_code = self.cleaned_data["zip_code"]
if password != password2:
raise forms.ValidationError("Your passwords do not match. Please try again.")
email_taken = User.objects.filter(username=username)
if email_taken:
raise forms.ValidationError({'email':["There is already an existing account with that email address."]})
return self
if password:
if len(password) < 9:
raise forms.ValidationError("Your password is too short. Please ensure that it is longer than 9 characters.")
return self
這裏
def fixer_intro(request):
form = fixer_signup_form()
if request.POST:
form = fixer_signup_form(request.POST)
if form.is_valid():
username = form.cleaned_data['email']
password = form.cleaned_data['password']
company_name = form.cleaned_data['company_name']
user = User.objects.create_user(username, username, password)
login(request, user)
fixer = fixer.create(user=user, company_name=company_name)
fixer.save()
return HttpResponseRedirect(reverse("Fixers:fixers_home"))
return render(request, "public_fixer_intro.html",{'signup_form': form})
形式正確驗證。然而,Django的調試引發了一個「BoundField沒有屬性'strip'」的錯誤,並且告訴我,儘管POST數據中包含我接收到的值,但我在視圖中分配的用戶名和密碼值已分配給表單本身的BoundField對象,而不是它們包含的數據。例如:
username <django.forms.forms.BoundField object at 0x7fe9787a2410>
password <django.forms.forms.BoundField object at 0x7fe97873abd0>
所以我清楚地分配我的價值觀不正確,但每次我在網上看到的資源表示,引用form.cleaned_data []字典的值是正確的方式來獲得表單中的數據(而不是POST請求本身)。任何人都可以告訴我我應該怎麼做?
非常感謝!
Aaaah! Yepp就是這樣。非常感謝! – 2014-12-06 17:32:29