clean()
메서드는 forms.py
에 정의 된 유효성 검사 규칙에 따라 양식을 정리합니다. 사용자 이름에 "@"사용자 지정 clean() 메서드는 "NoneType is iterable"오류를 발생시킵니다.
from django import forms
from django.contrib.auth.models import User
class RegistationForm(forms.Form):
# More fields ...
username = forms.CharField(
max_length=30, min_length=3, widget=forms.TextInput(
attrs={'placeholder': 'Username',
'title': 'You will use this for log in.'}))
# More fields ...
그리고 새로운 사용자가 사용하지 않도록 만들기 위해 문자를 (하나의 이메일을 하나 개의 계정 만 등록) I :
사용자 등록을 위해 나는 다음과 같은 양식을 만들었습니다 이 사용 내 RegisterForm
의 clean
방법 :
def clean(self):
cleaned_data = super(RegistationForm, self).clean()
user_email = cleaned_data.get("email")
user_username = cleaned_data.get("username")
if "@" in user_username: # Line causing error
msg = u"Usernames may contain alphanumeric, _, +, . and - characters."
self._errors["username"] = self.error_class([msg]
del cleaned_data["username"]
# More validation logic ...
return cleaned_data
하지만 그것은 나에게 clean
방법에 표시된 오류 줄에 argument of type 'NoneType' is not iterable
오류를 제공 빈 양식을 제출할 때 문제가 있습니다.
Django는 먼저 양식이 정상인지 확인한 다음 오류 줄을 확인해야합니까? 또는 어떻게 해결할 수 있습니까? 내 실수는 뭐니?