django模型形式multichoice更改或删除字段

时间:2015-03-30 22:58:28

标签: django django-templates modelform

我有一个模型表单,我试图删除名为name的字段,但我不能。

这是代码:

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ('name',)

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['name'] = forms.ModelChoiceField(widget=forms.CheckboxSelectMultiple, queryset=MyModel.objects.all(), empty_label=None)

模板非常简单:

{{form}}

在网页上,它看起来像:

名:

(复选框)ChoiceA

(复选框)ChoiceB

(复选框)ChoiceC

我想删除" name"上面,它来自MyForm中的代码,但我不知道如何删除它。

如果我想将其更改为另一个字符串,例如"请选择名称:",该怎么做?

1 个答案:

答案 0 :(得分:1)

嗯,将标签设置为empty字符串会起作用。理想情况下,您应该将这种逻辑放在模板中。在下面的这个例子中,我循环遍历表单字段并只显示字段输入。

{% for field in form %}
    <div class="fieldWrapper">
        {{ field }}
    </div>
{% endfor %}

请参阅https://docs.djangoproject.com/en/1.7/topics/forms/#looping-over-the-form-s-fields