class SeoBasic(models.Model):
slug = models.SlugField(verbose_name='URL', blank=True, null=True)
...
def save(self, *args, **kwargs):
duplicate = SeoBasic.objects.filter(slug=self.slug).exclude(pk=self.pk).count() > 0
if duplicate:
#update slug to be unique
super(SeoBasic, self).save(*args, **kwargs)
class ModelA(SeoBasic):
pass
class ModelB(SeoBasic):
pass
是否可以更新SeoBasic的保存方法,以便ModelA和ModelB仅在他们自己的类中搜索重复项?
当然,我可以将save()方法添加到ModelA和ModelB中。但有没有办法在父类中编写代码而不修改子类中的代码?
编辑: 在ModelA中我需要slug字段对于modelA是唯一的,在modelB中它必须对于modelB是唯一的,但它也可能是ModelA.slug = ModelB.slug