我正在为医疗团队开展Django项目,并且必须包含一个日历应用程序来管理患者的预约。通常,日历由多个事件组成,其中一个或多个参与者都是用户。在这里,与会者可以是医生和患者。出于实际和安全原因,它们分为两种不同的模型:医疗人员的 auth.User 和患者的患者。因此,我的想法是在用户和患者之上创建一个名为 People 的抽象类:
class Event(models.Model):
title = models.CharField(max_length=255)
start = models.DatetimeField()
end = models.DatetimeField()
#...
class Attendee(models.Model):
event = models.ForeignKey(Event)
people = models.ForeignKey(People)
attendance = models.CharField(choices = ("Yes","No","Unknown"))
# Abstract class
class People(models.Model):
name = models.CharField(max_length=100)
#...
class Meta:
abstract = True
# Patient is a subclass of People
class Patient(People):
date_of_birth = models.CharField(max_length=100)
#...
问题是:我现在如何使 Auth.User 也成为 People 的子类,以便用户也可以被视为与会者?它甚至可能吗?否则你将如何处理这个问题?
答案 0 :(得分:0)
您可能希望扭转局面,继承AbstractUser和人员的医务人员模型,如class Staff(AbstractUser, People)
。这样,Staff既具有People模型属性和方法,又具有django用户功能。