0

有什么理由这不起作用吗?/ 有什么办法让它工作吗?(不定义另一个选择集)

class Foo(models.Model):
    BAR_CHOICES = ((str(x), str(x)) for x in range(5))

    bar = models.CharField(max_length = 1, choices = BAR_CHOICES)
    barbar = models.CharField(max_length = 1, choices = BAR_CHOICES)

class FooForm(forms.ModelForm):
    class Meta:
        model = Foo

class FooAdmin(admin.ModelAdmin):
    pass

admin.site.register(Foo, FooAdmin)

然后,如果您转到该admin页面或进行 a ModelForm,则选择仅显示在第一个字段

像这样:

>> foo_form = FooForm()
>> print foo_form
<tr><th><label for="id_bar">Bar:</label></th><td><select name="bar" id="id_bar">
<option value="" selected="selected">---------</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select></td></tr>
<tr><th><label for="id_barbar">Barbar:</label></th><td><select name="barbar" id="id_barbar">
<option value="" selected="selected">---------</option>
</select></td></tr>

在此处输入图像描述

编辑以显示 FooForm、FooAdmin 和 Admin img

4

1 回答 1

2

您已经Foo.BAR_CHOICES通过基因定义。改用 LC,以便它可以迭代多次。

于 2012-06-04T07:39:22.700 回答