python - 创建子类不重复匹配字段
问题描述
我在 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
模型类。
abstract=True
您可以通过设置模型的类来创建抽象模型类Meta
。
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
推荐阅读
- r - 为什么“dnorm”不将一个概率加起来?
- php - 值没有保存到 laravel 中的数据库中
- python - Python:在循环中迭代条件语句
- swift - 如何在 NSTextField 中调整垂直单行字符串?
- node.js - 在猫鼬的每个查找查询中添加(注入)一个条件
- python - Pygame 中的用户定义键
- excel - SUM公式中的CONCATENATE函数
- spring-boot - 带有 Artemis 2.6.3 多播(主题)的 Spring WebSocketMessageBrokerConfigurer 不起作用
- r - 在 deSolve 包中产生的 NaN
- ios - Container/XiB Swift 中的音频播放器