3

我有一个包含模型的公共字段的抽象模型,但是如何定义一个唯一的 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()
4

1 回答 1

0

您可以尝试使用模型的verbose_name

def save(self, *args, **kwargs):
    # fill in make_slug yourself
    self.slug = make_slug(self._meta.verbose_name)
于 2013-01-16T22:51:12.197 回答