寻找在Django管理中使用单选按钮的方法。我想有3或4个硬编码的选项,用户可以从中选择,我将使用该选择知道如何处理下一个文本字段。选项永远不需要改变。有人能给我指个方向吗?
我假设您希望在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中设置值。