gpt4 book ai didi

python - Django 重复模型定义/字段

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:43 33 4
gpt4 key购买 nike

这是我使用的:

class a(models.Model):
x = models.CharField()

class b(a):
pass

问题在于,当创建 b 的实例时,也会创建 a 的实例,我猜这是因为 b 继承了 Django 分配的某些属性,例如数据库表。我想让 b 拥有所有字段和方法,这样就不会发生重复。如果不简单地将所有代码从 a 复制并粘贴到 b 或使用抽象基类 c 并让 a 和 b 都继承自 c(我只想有两个模型/类),如何做到这一点? 是否必须使用元类?

最佳答案

class A(models.Model):
#some fields here
x = models.CharField()
class Meta:
abstract = True

class B(A):
pass

A 将是一个抽象类,您不能单独使用该类。但据我了解,您想要两个真正的类 AB。在这种情况下,您需要第三个(抽象)类 C。所以他们将从抽象的字段继承字段并向它们添加额外的字段。

例如:假设abstract是C

class C(models.Model):
# the common fields
class Meta:
abstract = True
class A(C):
#extra fields if you need or pass
class B(C):
#extra fields if you need or pass

关于python - Django 重复模型定义/字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13189837/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com