是否可以将 class 作为 Django 中的模型字段?
Is it possible to have a class as your model field in Django?
我目前正尝试在 Django 中创建一个健康网络网站。
我的想法是在我的注册应用程序中会有一个名为 User 的 class。 User 中存储的状态之一是用户注册到哪家医院。
我在注册应用程序中创建了另一家医院。我想将该模型 Hospital 用作 hospital_used 州的模型字段之一。我怎么做?下面是我的 UML 的一部分,它说明了这种关系
UML Diagram
Below is a portion of my UML that illustrates the relationship
png
这是我目前拥有的代码。它用星号封装的代码是我需要帮助的。
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,
)
谢谢 Whosebug 好友
我建议您阅读此 material 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
,但您最好处理删除医院时应该发生的事情。
知道您还可以拥有 OneToOne、ManyToOne 或 ManyToMany 字段,这些字段都已描述 here。
我目前正尝试在 Django 中创建一个健康网络网站。 我的想法是在我的注册应用程序中会有一个名为 User 的 class。 User 中存储的状态之一是用户注册到哪家医院。
我在注册应用程序中创建了另一家医院。我想将该模型 Hospital 用作 hospital_used 州的模型字段之一。我怎么做?下面是我的 UML 的一部分,它说明了这种关系
UML Diagram
Below is a portion of my UML that illustrates the relationship png
这是我目前拥有的代码。它用星号封装的代码是我需要帮助的。
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,
)
谢谢 Whosebug 好友
我建议您阅读此 material 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
,但您最好处理删除医院时应该发生的事情。
知道您还可以拥有 OneToOne、ManyToOne 或 ManyToMany 字段,这些字段都已描述 here。