Django - ValueError:解压缩的值太多(预期2)

时间:2017-12-07 21:32:25

标签: python django

我尝试使用模型制作一个droplist。

USER_TYPE = {
'admin': "Admin",
'patient': "Patient",
'helper': "Helper",
'therapist': "Therapist",
}


class User(AbstractBaseUser):
    user_type = models.CharField(max_length=10, choices=USER_TYPE, default="patient")

然而,我收到此错误:

  

ValueError:解压缩的值太多(预期2)

提前致谢!

2 个答案:

答案 0 :(得分:2)

你需要的只是元组而不是字典。喜欢:

YEAR_IN_SCHOOL_CHOICES =(     (' FR','新生'),     (' SO','二年级学生'),     (' JR',' Junior'),     (' SR','高级'), )

答案 1 :(得分:1)

  1. 您正在使用CharField,但如果您想要下拉列表,则应该使用ChoiceField

  2. 您正在将USER_TYPE作为字典提供,但

      

    选择

         

    要使用2元组的可迭代(例如,列表或元组)作为此字段的选项,或使用返回此类可迭代的可调用对象。此参数接受与模型字段的choices参数相同的格式。有关详细信息,请参阅有关选项的模型字段参考文档。如果参数是可调用的,则每次初始化字段的形式时都会对其进行求值。默认为空列表。   https://docs.djangoproject.com/en/1.11/ref/forms/fields/#django.forms.ChoiceField.choices

  3. 所以尝试类似:

    USER_TYPE = [
    ('admin', "Admin"),
    ('patient', "Patient"),
    (..., ...),
    ]