如何解决如何在Django模型中添加通用字段?
我正在使用django
为应用程序school management system
准备数据库模式。
在建立User
,Staff
和Student
这三个表之间的关系时发生了一些混乱。
-
User
表存储主要用户字段,例如first_name
,last_name
,email
等。 -
Staff
字段存储人员qualification
,department
,designation
等和外键User
,以存储人员的主要详细信息。还有 -
Student
还有Foreign key
和User
来存储其主要信息,并保留其他与学生相关的字段,例如registration details
,guardian details
等。
要添加学生和教职工的详细联系信息,我想出了以下方法在两个表中存储一个contact
字段:
models.py#from'common',这是一个单独的Django应用程序,用于存储常用的数据库表,例如联系人,用户,语言,时区等。
from django.contrib.auth.models import User,Group
class Contact(models.Model):
address = models.TextField(_("Permanent Address"),blank=True,null=True)
landmark = models.CharField(_("Landmark"),max_length=80)
city = models.CharField(_("City/Town"),max_length=80)
...
models.py#从'students'中,单独的django应用程序处理学生详细信息,例如学生录取以及相应的其他表格。
class Student (models.Model):
reg_number = models.CharField(_("Reg. Num"),max_length=20)
member = models.OneToOneField(User,verbose_name=_("Student"),related_name="students",on_delete=models.CASCADE)
contact = models.ForeignKey(Contact,on_delete=models.CASCADE,...)
...
models.py#来自“ staff”,是单独的django应用程序,用于处理人员,例如人员详细信息,职务,工资等。
class Staff(models.Model): # Staff
member = models.ForeignKey(User,verbose_name=_("Staff Member"),on_delete=models.CASCADE)
contact = models.ForeignKey(Contact,...)
现在的困惑是,如果我在两个表中都添加contact
(如上所述),
- 如何获取所有联系方式的列表以在单独的html页面上显示?
- 如何在两个表中都添加一个公用的
contact
字段而无需修改内置User
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。