django modelform没有渲染BooleanFiled

时间:2017-03-14 12:09:03

标签: django django-forms django-templates modelform

我有这个型号:

class Event(models.Model):
    title = models.CharField("Event Title",max_length=250)
    private = models.BooleanField("Private event",default=False)
    category = models.ForeignKey(Category)
    created   =  models.DateTimeField(default=timezone.now')

此模型形式:

class EventForm(forms.ModelForm):
    private = forms.BooleanField(label='Private event',required=False)
    class Meta:
        model = Event
        exclude = ('created',)

在我的模板中,不会渲染布尔字段。即使我尝试使用{{form.as_p}}显示表单。 我已经多次下载并创建了数据库。我已经检查了权限。我检查了迁移。 我错过了什么?

2 个答案:

答案 0 :(得分:1)

在您的forms.py中添加小部件,如下所示:

private = forms.BooleanField(widget=forms.CheckboxInput, default=False)

这可能有助于渲染布尔字段!

答案 1 :(得分:0)

privatetitle的模型字段定义应明确将文本标签分配给verbose_name关键字参数。我也会从exclude更改为fields,看看当您列出字段集并停止在表单上定义private时会发生什么。