python 2.7 - Django管理单选按钮



寻找在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中设置值。

最新更新