python - django模型的继承
问题描述
我想要两种注册类型。例如:雇员和雇主类型。我想要两种不同的形式。我覆盖 AbstractUser 并在我使用这个类之后(继承)
class User(AbstractUser):
age=models.BooleanField(default=True)
class employee(User):
is_employee=models.BooleanField(default=True)
ser=models.BooleanField()
sag=models.CharField(max_length=1)
class Meta:
verbose_name="employee"
class employer(User):
is_employer=models.BooleanField(default=True)
address=models.CharField(max_length=100)
但是当我保存员工或雇主类时也创建了用户类。当我只保存员工而不是用户时,我可以做什么
解决方案
我认为这取决于 User 表的状态 - 你现在拥有它的方式将有一个 User 表和一个 Employee 表以及一对一的关系。
如果您希望 Employee 和 Employer 表都包含“年龄”属性,则必须使 User 表抽象。
https://docs.djangoproject.com/en/3.1/topics/db/models/#model-inheritance
这样做的方法是:
class User(AbstractUser):
class Meta:
abstract = True
age=models.BooleanField(default=True)
即使您从 Abstract User 继承,我也不认为 Meta 设置是继承的。
推荐阅读
- java - 如何在图像加载之前显示进度条。?
- json - Wordpress Headless 使用 wp-api 进行 reactJS
- python - 如何找到使用的缩减算法?
- python - 如何在运行时使用运行时参数在 python(如 shell 脚本)中使用 -- 在运行时调用方法
- node.js - 按日期分割数据的最佳方法是什么
- tensorflow - 如何在 TensorFlow 中加载最后一个检查点?
- documentation - 如何为调用图中的函数设置颜色?
- c - 检查数组是否是C中的对角占优矩阵
- python-3.x - 读取包含逗号的 .csv
- r - 计算R中四个不同列的最大时间