DGD*_*GDD 2 python django validation
我一直得到这个错误,对于我的生活,我找不到问题的根源.
追溯:
/Library/Python/2.7/site-packages/django/core/handlers/base.py in get_response
response = middleware_method(request)
/Library/Python/2.7/site-packages/django/middleware/common.py in process_request
if (not urlresolvers.is_valid_path(request.path_info, urlconf) and
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in is_valid_path
resolve(path, urlconf)
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in resolve
return get_resolver(urlconf).resolve(path)
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in resolve
for pattern in self.url_patterns:
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
/Library/Python/2.7/site-packages/django/core/urlresolvers.py in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
/Library/Python/2.7/site-packages/django/utils/importlib.py in import_module
__import__(name)
/Users/user/Desktop/user/urls.py in <module>
import contacts.views
/Users/user/Desktop/contacts/views.py in <module>
import forms
/User/Desktop/contacts/forms.py in <module>
class ContactForm(forms.ModelForm):
/Users/Desktop/contacts/forms.py in ContactForm
required=True,
Run Code Online (Sandbox Code Playgroud)
我正在关注有效的django教程和此页面,但我无法通过电子邮件验证部分.我不确定我在这里做错了什么.
Forms.py:
from django import forms
from django.core.exceptions import ValidationError
from contacts.models import Contact
class ContactForm(forms.ModelForm):
confirm_email = forms.EmailField(
"Confirm email",
required=True,
)
class Meta:
model = Contact
def __init__(self, *args, **kwargs):# Constructor mutates kwarg.
if kwargs.get('instance'):
email = kwargs['instance'].email# Instance is the name of what's being edited
kwargs.setdefault('initial', {})['confirm_email'] = email
return super(ContactForm, self).__init__(*args, **kwargs)
def clean(self):
if (self.cleaned_data.get('email') !=
self.cleaned_data.get('confirm_email')):
raise ValidationError(
"Email address must match."
)
return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)
楷模:
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.EmailField()
def __str__(self):
return ' '.join([
self.first_name,
self.last_name,
])
def get_absolute_url(self):
return reverse('contacts-view', kwargs={'pk': self.id})#Returns address of a contact.
Run Code Online (Sandbox Code Playgroud)
更改confirm_email为使用关键字参数:
confirm_email = forms.EmailField(label="Confirm email", required=True)
Run Code Online (Sandbox Code Playgroud)
因为当您将其定义为:
confirm_email = forms.EmailField("Confirm email", required=True)
Run Code Online (Sandbox Code Playgroud)
forms.EmailField得到的构造函数Confirm email为max_length:
def __init__(self, max_length=None, min_length=None, *args, **kwargs):
self.max_length, self.min_length = max_length, min_length
super(CharField, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)