1

管理者でユーザーの性別を設定しようとしていますが、エラーが発生します

Value u"[u'm']" is not a valid choice.

admin.py

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(プレーヤーモデル)

class Player(AbstractBaseUser):
    GENDER_CHOICES = (
        ('m', 'Male'),
        ('f', 'Female'),
    )
    ...
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
    ...

おもしろい事実:フォームには、adminのdadabaseからの正しいデフォルト値が表示されます。

フォームを送信しようとしたときのPOSTペイロード:

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

m

編集:DBがPostgres 8.4であり、問​​題の列が

VARCHAR(1)
4

1 に答える 1

1

あなたが使用しているのでMultipleChoiceField

gender = forms.MultipleChoiceField(label="Gender", choices=GENDER_CHOICES)

性別を「リスト」に保存します。その結果:

>>> gender = ['m']

ChoiceField単一のものを選択するために使用されるものを使用する必要があります。

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

その結果:

>>> gender = 'm'
于 2013-02-23T14:37:27.217 に答える