我在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