2014-03-19 106 views
0

尋找一種在Django管理中使用單選按鈕的方法。我希望用戶可以選擇3或4個硬編碼選項,我將使用該選項來知道如何處理下一個文本字段。選項永遠不需要改變。任何人都可以將我指向正確的方向嗎?谷歌在這一個不合作......Django Admin單選按鈕

回答

1

我會假設你想要在Foo模型對象的更改頁面上。我們來調用額外的字段my_option。

首先,你需要在你的FooAdmin類中使用自定義表單,所以你可以在那裏得到額外的領域:

class FooAdmin: 
    ... 
    form FooForm 
    fields = (..., 'my_option', ...) 
    ... 

然後,只需創建一個額外的選項形式:

class FooForm(forms.ModelForm): 
    class Meta: 
     model = Foo 
    my_option = ChoiceField(
     label = 'Options', 
     choices = (
      (0, 'Don\'t change anything.'), 
      (1, 'Do some crazy stuff.'), 
      (2, 'Do other stuff.'), 
     ), 
     initial = 0, 
     widget = RadioSelect, 
    ) 

ChoiceField默認使用選擇框,這就是爲什麼您還需要重寫字段構造函數中的窗口小部件類型的原因。如果您更好地滿足您的需求,也可以查看TypedChoiceField。

最後,您需要在某處處理該字段。我建議覆蓋FooForm中的clean()方法來獲取self.cleaned_data中的值和值,具體取決於您想要的選項。