在我的 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 字段,当我点击保存按钮时,它说:
此字段是必需的。
我的代码不是应该自动创建 slug 吗?还有什么我应该做的吗?
你应该blank=True
为你的 slug 字段设置。这样就不需要它了,它会在 save 方法运行时设置为 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句