Django:如何为抽象模型及其子代定义一个独特的slug?

时间:2013-01-16 21:59:06

标签: python django django-models

我有一个抽象模型,其中包含我的模型的常见字段,但是如何定义一个独特的slug,因为我无法对抽象模型进行查询,只能查询其子类?

我正在寻找一种干净简单的方法,而没有手动提及子类的名称。

class MainModel(models.Model):
    title = models.CharField(_('title'), max_length=150)
    slug = models.SlugField(_('slug'), unique=True, max_length=150)
    category = models.ForeignKey('Category', verbose_name=_('category'))

    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        # define unique slug for ChildModel1, ChildModel2

class ChildModel1(MainModel):
    active = models.BooleanField()

class ChildModel2(MainModel):
    content = models.TextField()

1 个答案:

答案 0 :(得分:0)

您可以尝试使用模型的verbose_name

def save(self, *args, **kwargs):
    # fill in make_slug yourself
    self.slug = make_slug(self._meta.verbose_name)