用户作为Django的子类

时间:2014-04-03 10:16:55

标签: django calendar

我正在为医疗团队开展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 的子类,以便用户也可以被视为与会者?它甚至可能吗?否则你将如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

您可能希望扭转局面,继承AbstractUser和人员的医务人员模型,如class Staff(AbstractUser, People)。这样,Staff既具有People模型属性和方法,又具有django用户功能。