如何在 Django 表单向导中制作像 RadioSelector 这样的 Django 字段

How to make a django field like a RadioSelector inside a django form wizard

我需要以一种采用 X/Z、True/False 或 0/1 的方式定义我的 Django 模型的一个字段。我的意思是,当我 select 一个复选框时,我希望能够只选择一个复选框,而不是同时选择两个复选框(就像 select 在是或否之间)并且在提交后我在数据库中看到这些提到的值之一 table字段。

到目前为止我尝试过的:

from model_utils import Choices
class Post(models.Model):
     STATUS = Choices(
       ('x', ('select X')),
       ('z', ('Select Z'))
     )

    action_style = models.CharField(
        max_length=32,
        choices=STATUS,
        default='x'
        )

形式为:

class Postform(forms.ModelForm):

    STATUS = Choices(
           ('x', 'select X'),
           ('z', 'Select Z')
         )

    status = forms.MultipleChoiceField(
        widget=forms.CheckboxSelectMultiple,
        required=False, choices=STATUS
    )

    class Meta:
        model = Post
        fields = ['status']

并在模板中:

<form method="POST" action="" enctype="multipart/form-data">
            {% csrf_token %}
            {{ wizard.management_form }}
            {{ wizard.form.action_style }}
             <input type="submit" value="submit"/>
</form>

这可能会导致仅选择一个问题。

forms.CheckboxSelectMultiple

根据关于 CheckboxSelectMultiple and related SelectMultiple 的 django 文档,它允许 多项选择:<select multiple>...</select>

您可能需要 CheckBoxInput3 or use RadioSelect 4

在forms.py中,替换

status = forms.MultipleChoiceField(
        widget=forms.CheckboxSelectMultiple,
        required=False, choices=STATUS
    )

status = forms.MultipleChoiceField(
        widget = forms.RadioSelect(choices=STATUS)
    )