3

モデルの共通フィールドを含む抽象モデルがありますが、抽象モデルではクエリを実行できず、そのサブクラスでのみクエリを実行できるため、一意のスラッグを定義するにはどうすればよいですか?

サブクラスの名前を手動で言及せずに、クリーンでシンプルなメソッドを探しています。

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 に答える