2 回答
TA贡献2021条经验 获得超8个赞
我认为您可以定义一个抽象模型类,并使用 slugify 函数覆盖 save 方法。像这样:
class AbstractBase(models.Model):
slug = models.SlugField()
class Meta:
abstract = True
def save(self, *args, **kwargs):
self.slug = slugify.Slugify(self.slug)
return super(AbstractBase, self).save(*args, **kwargs)
并将您的其余模型从这个abstract类中子类化,例如:
class Post(AbstractBase):
# rest of the post fields
这样,slugify 将只在一个地方完成,并在所有模型中全局工作。
TA贡献1825条经验 获得超4个赞
它不是全局的一种方法是编写自己的 slugify 函数,然后您可以通过在要对标题/名称字段进行 slugify 的模型的覆盖保存方法中调用它来利用它。
例如。
class Post(models.Model):
title = models.CharField(max_length=512)
slug = models.CharField(max_length=1024)
def save(self, *args, **kwargs):
your_slugify_function(self, self.title)
super(Post, self).save(*args, **kwargs)
添加回答
举报