Django SlugField "This field is required" 错误

Django SlugField "This field is required" error

在我的 django 项目中有一个博客模型,我愿意为其标题创建一个 slug:

class Blog(models.Model):
    title = models.CharField(default='', max_length=100, verbose_name=u'عنوان')
    slug = models.SlugField(max_length=100, allow_unicode=True)
    # other stuffs
    def save(self, *args, **kwargs):
        self.slug = slugify(self.title, allow_unicode=True)
        super(Blog, self).save(*args, **kwargs)

    def __str__(self):
        return self.slug

在 django admin 中,我没有填写 slug 字段,当我点击保存按钮时,它说:

This field is required.

我的代码不是应该自动创建 slug 吗?还有什么我应该做的吗?

您应该为您的 slug 字段设置 blank=True。这样就不需要它了,当保存方法 运行.

时,它将被设置为 slugified title
class Blog(models.Model):
    title = models.CharField(default='', max_length=100, verbose_name=u'عنوان')
    slug = models.SlugField(max_length=100, allow_unicode=True, blank=True)