Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 值错误:太多值无法解包,电子邮件验证_Python_Django - Fatal编程技术网

Python 值错误:太多值无法解包,电子邮件验证

Python 值错误:太多值无法解包,电子邮件验证,python,django,Python,Django,我试图通过forms.py对电子邮件进行验证,但这给了我一个错误,即“值太多,无法解包”,尽管我对django和python编程还不熟悉 这是我的密码: def clean_email(self): email = self.cleaned_data.get('email') email_base, provider = email.split("@") domain, extension = provider.split('.') # if not domain

我试图通过forms.py对电子邮件进行验证,但这给了我一个错误,即“值太多,无法解包”,尽管我对django和python编程还不熟悉

这是我的密码:

def clean_email(self):
    email = self.cleaned_data.get('email')
    email_base, provider = email.split("@")
    domain, extension = provider.split('.')
    # if not domain == 'USC':
    #   raise forms.ValidationError("Please make sure you use your USC email.")
    if not extension == "edu":
        raise forms.ValidationError("Please use a valid .EDU email address")
    return email

异常情况,
ValueError:要解包的值太多
,是由于将列表解包到大小不匹配的目标变量而导致的。比如说,

>>> a, b, c = 'xxx.yyy.edu'.split('.')      # ['xxx', 'yyy', 'edu']

# too few target variables
>>> a, b = 'xxx.yyy.edu'.split('.')         
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

# too many target variables
>>> a, b, c, d = 'xxx.yyy.edu'.split('.')   
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 3 values to unpack

试试这样的

    extension = provider[::-1].split('.')[0]
    # if not domain == 'USC':
    #   raise forms.ValidationError("Please make sure you use your USC email.")
    if not extension == "ude":
        raise forms.ValidationError("Please use a valid .EDU email address")
    return email

您的输入数据是什么。这与
.edu.uk
中断。返回
uk
作为扩展名,扩展名为wrong@MosesKoledoye,谢谢你指出这一点。我刚刚编辑了我的答案。
    extension = provider[::-1].split('.')[0]
    # if not domain == 'USC':
    #   raise forms.ValidationError("Please make sure you use your USC email.")
    if not extension == "ude":
        raise forms.ValidationError("Please use a valid .EDU email address")
    return email