Django - ValueError:基数为10的int()的无效文字:'确认电子邮件'

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)

Omi*_*aha 5

更改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 emailmax_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)