创建不重复匹配字段的子类


我在Django中创建了两个类模型。有没有办法不重复相同的匹配字段,将它们存储在不同的类或变量中?

这就是我得到的:

class Post(models.Model):
title = models.CharField(max_length=50)
content = RichTextField(blank=True)
category = models.ForeignKey(Category, verbose_name="Category", on_delete=models.CASCADE)
posted_by = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
slug = models.SlugField(null=True, unique=True, editable=False)
def __str__(self):
return str(self.category) + self.slug + " " + str(self.id)
def save(self, *args, **kwargs):
self.slug = slugify(str(self.category)) + "/" + slugify(self.title+str(-self.id))
super(Post, self).save(*args, **kwargs)
def __str__(self):
return self.title
class Post2(models.Model):
title = models.CharField(max_length=50)
content = RichTextField(blank=True)
category = models.ForeignKey(Category, verbose_name="Category", on_delete=models.CASCADE)
posted_by = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
slug = models.SlugField(null=True, unique=True, editable=False)
def __str__(self):
return str(self.category) + self.slug + " " + str(self.id)
def save(self, *args, **kwargs):
self.slug = slugify(str(self.category)) + "/" + slugify(self.title+str(-self.id))
super(Post2, self).save(*args, **kwargs)
def __str__(self):
return self.title

我认为您正在尝试查找abstract模型类。

您可以通过在模型的Meta类中设置abstract=True来创建抽象模型类。

class AbstractPost(models.Model):
title = models.CharField(max_length=50)
# common fields and functions
class Meta:
abstract = True

class Post(AbstractPost): # inherit the abstract base class
pass

class Post2(AbstractPost):
pass

最新更新