这是我的模型:

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 时,它​​会正确执行同步数据库。但是当我在管理员中尝试保存没有描述的博客时,它没有。它显示错误



我如何克服这个问题?

然而,在管理员中,我使用 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())

顺便说一句,您可以使用 formfield_overrides ModelAdmin 选项而不是替换整个表单:
class BlogAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': CKEditorWidget()},
    }

关于django - TextField 不能为空或空白,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29717518/

10-12 23:04