django modelform没有';不渲染布尔场

django modelform没有';不渲染布尔场,django,django-forms,django-templates,modelform,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=ti

我有这个模型:

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}显示表单时。 我已经多次删除并创建了数据库。我已经检查了权限。我已经检查了迁移。
我错过了什么

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

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

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

您的
private
title
的模型字段定义应该明确地将文本标签指定给关键字参数。我还将从
exclude
更改为
fields
,以查看当您列出字段集并停止在表单上定义
private
时会发生什么情况。

为什么不在
Meta
字段中包含
private
?类似这样的内容:
字段=['title',private',category']
。然后删除
排除
。你能给我们看一下生成的HTML吗?@nik_m,这会有什么帮助?出于可读性的原因,我建议这样做。这就是全部。我正要把这件事发出去。显式比隐式好,对吧?我也试过了,忘了提了。没用,它确实爆炸了。当我提交表单时,我收到一个错误“字段‘private’没有默认值”。您建议我如何解决这个问题?我修复了其他字段,但是是私有的,因为它是布尔值,所以应该有一个默认值。它适用于我使用过的其他模型。因为当
字段
没有
默认值
参数时?@nik_m,是的,我想是--我查看了文档而不是代码,但应该意识到在这种情况下它会爆炸。@DanaeVogiatzi何时爆炸?当你提交或试图提交表单时?@Tom当我提交时