Django:如何为抽象模型及其子级定义一个唯一的slug?

2024-06-18 13:03:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 模型true定义titlemodels子类lengthmax