在我的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管理中,我不填充段塞字段,当我点击保存按钮时,它会显示:
此字段为必填字段。
我的代码不是要自动创建slug吗?还有什么我该做的吗?
您应该为段塞字段设置blank=True
。这样就不需要它了,当保存方法运行时,它将被设置为slugified标题。
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)