【发布时间】:2021-11-26 11:41:49
【问题描述】:
我在不同的模型中有几个字段。例如
class A(models.Model):
field_1 = models.CharField(max_length=5, blank=False)
field_2 = models.CharField(max_length=100, blank=False)
field_3 = models.CharField(max_length=200, blank=False)
class B(models.Model):
field_4 = models.CharField(max_length=5, blank=False)
field_5 = models.CharField(max_length=100, blank=False)
field_6 = models.CharField(max_length=200, blank=False)
除了这些课程之外,我还想创建一个领导班。此类包含将来可能复制到其他模型中的数据。因此,数据约束是相同的,但由于这是可选数据,因此可能会丢失一些数据。
我想使用 DRY,但我也想更新空白字段。有关如何使用这些原始类中的确切字段定义的任何提示?
class Lead(models.Model):
field_1 = A.field_1 # but with updated blank field
field_3 = B.field_3 # but with updated blank field
我考虑过类依赖,但实际上我正在使用来自 5 个类的字段,我担心如果领导类依赖于这些字段,它们会变得难以阅读。
【问题讨论】:
-
您是否尝试过创建一个抽象类并将其用于其他人?
-
@amadou-sow,是的,我按照上一段中提到的那样做了。但是我认为这可能会变得难以阅读。最重要的是,在这种情况下,将空白更改为 True/False 更加困难。
-
阅读更多 Django 文档后,我开始相信这是不可能的。 “在正常的 Python 类继承中,允许子类覆盖父类的任何属性。在 Django 中,模型字段通常不允许这样做。” - docs.djangoproject.com/en/dev/topics/db/models/…
标签: python django django-models