2016-09-23 56 views
0

我目前正在嘗試在Django中創建一個健康網絡網站。 這個想法是,我的註冊應用程序中會有一個名爲User的類。存儲在用戶中的狀態之一是用戶註冊到哪個醫院。是否有可能在Django中有一個類作爲模型字段?

我在註冊應用程序內創建了另一家醫院。我希望將該模型醫院用作hospital_used狀態的模型字段之一。我怎麼做?下面是說明關係
UML Diagram

Below is a portion of my UML that illustrates the relationship PNG

這裏是我有這麼遠的代碼我的UML的一部分。它用星號封裝的代碼是我需要幫助的。

class Hospital(models.Model): 
    hospital_Name = models.CharField(max_length=150) 

    def __str__(self): 
     return "Hospital Name: " + str(self.hospital_Name) 


class User(models.Model): 
    PATIENT = 'Pat' 
    DOCTOR = 'Doc' 
    NURSE = 'Nurse' 
    ADMINISTRATOR = 'Admin' 
    user_type_choice = { 
     (PATIENT, 'Patient'), 
     (DOCTOR, 'Doctor'), 
     (NURSE, 'Nurse'), 
     (ADMINISTRATOR, 'Administrator'), 
    } 

    name = models.CharField(max_length=50) 
    dob = models.DateField(auto_now=False) 
    username = models.CharField(max_length=50) 
    *preferred_hospital = Hospital(models.CharField(max_length=50))* 
    patient_type = models.CharField(
     max_length=5, 
     choices=user_type_choice, 
    ) 

謝謝你的StackOverflow夥伴

+0

只需使用外鍵。 – JRodDynamite

+0

哇,好吧,非常感謝 –

回答

0

我會建議你閱讀關於如何創建簡單的模型這種材料on tutorials

這裏你想要的是使用ForeignKey方法。

name = models.CharField(max_length=50) 
dob = models.DateField(auto_now=False) 
username = models.CharField(max_length=50) 
preferred_hospital = models.ForeignKey(Hospital, on_delete = models.CASCADE) 
patient_type = models.CharField(
    max_length=5, 
    choices=user_type_choice, 
) 

您不必使用on_delete = models.CASCADE但它是你處理,當你刪除一個醫院應該發生什麼最好的。

知道您還可以擁有所有描述爲here的OneToOne,ManyToOne或ManyToMany字段。

相關問題