Django管理选择字段错误

Django管理选择字段错误,django,admin,choicefield,Django,Admin,Choicefield,我试图在Admin中为我的用户设置性别,但得到了错误 值u“[u'm']”不是有效的选择。 管理员 class PlayerForm(forms.ModelForm): GENDER_CHOICES = ( ('m', 'Male'), ('f', 'Female'), ) ... gender = forms.MultipleChoiceField(label="Gender", choices=GENDER_CHOICES) ... clas

我试图在Admin中为我的用户设置性别,但得到了错误

值u“[u'm']”不是有效的选择。

管理员

class PlayerForm(forms.ModelForm):
    GENDER_CHOICES = (
        ('m', 'Male'),
        ('f', 'Female'),
    )
...
gender = forms.MultipleChoiceField(label="Gender", choices=GENDER_CHOICES)
...

class Meta:
    model = Player


class PlayerAdmin(admin.ModelAdmin):
    form = PlayerForm


admin.site.register(Player, PlayerAdmin)
models.py(播放器模型)

有趣的事实:表单确实在admin中显示了来自dadabase的正确默认值

尝试提交表单时发布有效负载:

------WebKitFormBoundary009tVyo4cRJvIAnC
Content-Disposition: form-data; name="gender"

m
编辑:忘了提到DB是Postgres 8.4,所讨论的列是a

VARCHAR(1)
由于您正在使用:

它将把性别保存到一个“列表”中。导致:

>>> gender = ['m']
>>> gender = 'm'
您需要使用哪个选项来选择单个对象:

gender = forms.ChoiceField(label="Gender", choices=GENDER_CHOICES)
导致:

>>> gender = ['m']
>>> gender = 'm'
由于您正在使用:

它将把性别保存到一个“列表”中。导致:

>>> gender = ['m']
>>> gender = 'm'
您需要使用哪个选项来选择单个对象:

gender = forms.ChoiceField(label="Gender", choices=GENDER_CHOICES)
导致:

>>> gender = ['m']
>>> gender = 'm'

你能发布回溯吗?你能发布回溯吗?谢谢你解决了这个问题。一定是“意外”选择了Multipechoicefield,这不是我的本意。谢谢你,解决了这个问题。一定是“意外”选择了MultipleChiceField,这不是我的本意。