【问题标题】:How to make a django field like a RadioSelector inside a django form wizard如何在 django 表单向导中制作 django 字段,如 RadioSelector
【发布时间】:2021-03-12 20:55:26
【问题描述】:

我需要以 X/Z、True/False 或 0/1 的方式定义我的 django 模型的一个字段。我的意思是当我选择一个复选框时,我希望能够只选择一个复选框,而不是同时选择一个复选框(比如在是或否之间选择),并且在提交后我会在数据库表字段中看到其中一个提到的值。

到目前为止我所尝试的:

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>

【问题讨论】:

  • 听起来像一个单选按钮。正确吗?
  • 是的,类似的,

标签: django django-formwizard


【解决方案1】:

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

forms.CheckboxSelectMultiple

根据django Doc关于CheckboxSelectMultiple和相关的SelectMultiple,它允许多选:&lt;select multiple&gt;...&lt;/select&gt;

您可能需要 CheckBoxInput3 或使用 RadioSelect 4

在forms.py中,替换

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

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

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2015-08-19
    • 2011-09-15
    • 2017-04-04
    • 2017-04-23
    • 2020-05-25
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多