django - TextField不能为null或空白

Kak*_*kar 4 django django-models django-forms django-admin

这是我的模特:

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)
Run Code Online (Sandbox Code Playgroud)

当我syncdb,它正确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)
Run Code Online (Sandbox Code Playgroud)

我在代码中做错了吗?请帮我解决这个问题.我将非常感激.谢谢.

cat*_*ran 8

required=False参数添加到表单字段定义:

description = forms.CharField(required=False, widget=CKEditorWidget())
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您可以使用formfield_overrides选项ModelAdmin而不是替换整个表单:

class BlogAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': CKEditorWidget()},
    }
Run Code Online (Sandbox Code Playgroud)