2012-06-04 54 views
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網頁或進行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> 

enter image description here

編輯顯示FooForm,FooAdmin和Admin img

+0

顯示你的'類FooForm()(forms.ModelForm):'代碼。 –

回答

2

您已通過genex定義Foo.BAR_CHOICES。使用LC代替,以便它可以迭代多次。

+0

伊格納西奧你是男人。我想你到目前爲止回答了我所有人的問題。你能解釋一點嗎?只是試圖搜索genex/LC,我找不到任何東西。謝謝 – Ben

+0

[生成器表達式與列表理解](http://stackoverflow.com/questions/47789/generator-expressions-vs-list-comprehension) –

相關問題