django - TextField 不能为 null 或空白
django - TextField cannot be null or blank
这是我的模型:
class Blog(models.Model):
title = models.CharField(max_length=300, blank=True, null=True)
description = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to=get_upload_file_name, blank=True, null=True, default='')
pubdate = models.DateTimeField(default=timezone.now)
of_type = models.CharField(max_length=2,choices=TYPES)
当我 syncdb
时,它会正确执行 syncdb。但是当我在管理员中尝试保存一个没有描述的博客时,它没有。它向
显示错误
This field is required.
我该如何克服这个问题?
在管理员中,我正在使用 ckeditor 来使用它的小部件:
class BlogAdminForm(forms.ModelForm):
description = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Blog
class BlogAdmin(admin.ModelAdmin):
form = BlogAdminForm
admin.site.register(Blog, BlogAdmin)
我在代码中做错了什么吗?请帮我解决这个问题。我将不胜感激。谢谢。
在表单字段定义中添加 required=False
参数:
description = forms.CharField(required=False, widget=CKEditorWidget())
顺便说一句,您可以使用 ModelAdmin
的 formfield_overrides
选项而不是替换整个表格:
class BlogAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': CKEditorWidget()},
}
这是我的模型:
class Blog(models.Model):
title = models.CharField(max_length=300, blank=True, null=True)
description = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to=get_upload_file_name, blank=True, null=True, default='')
pubdate = models.DateTimeField(default=timezone.now)
of_type = models.CharField(max_length=2,choices=TYPES)
当我 syncdb
时,它会正确执行 syncdb。但是当我在管理员中尝试保存一个没有描述的博客时,它没有。它向
This field is required.
我该如何克服这个问题?
在管理员中,我正在使用 ckeditor 来使用它的小部件:
class BlogAdminForm(forms.ModelForm):
description = forms.CharField(widget=CKEditorWidget())
class Meta:
model = Blog
class BlogAdmin(admin.ModelAdmin):
form = BlogAdminForm
admin.site.register(Blog, BlogAdmin)
我在代码中做错了什么吗?请帮我解决这个问题。我将不胜感激。谢谢。
在表单字段定义中添加 required=False
参数:
description = forms.CharField(required=False, widget=CKEditorWidget())
顺便说一句,您可以使用 ModelAdmin
的 formfield_overrides
选项而不是替换整个表格:
class BlogAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': CKEditorWidget()},
}