django modelform 不呈现 BooleanFiled

django modelform doesn't render BooleanFiled

我有这个型号:

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)

这可能有助于呈现布尔字段!

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