Django外键选择
我想构建一个应用程序,在这个应用程序中,患者将报告上传给他的同伴医生, 所以,我有两个模型,一个是给医生的,另一个是给病人的。 我想在这两种模式之间建立一种关系,即患者从注册医生中选择医生 代码如下:Django外键选择,django,django-models,foreign-keys,Django,Django Models,Foreign Keys,我想构建一个应用程序,在这个应用程序中,患者将报告上传给他的同伴医生, 所以,我有两个模型,一个是给医生的,另一个是给病人的。 我想在这两种模式之间建立一种关系,即患者从注册医生中选择医生 代码如下: class DoctorModel(models.Model): user = models.OneToOneField(CustomUser, on_delete=models.CASCADE) doctorName = models.CharField(max_length =
class DoctorModel(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
doctorName = models.CharField(max_length = 150 , default="")
doctorEmail = models.EmailField(max_length=50, default="")
speciality = models.CharField(choices = SPECIALITY ,max_length = 20 , default="")
doctorStatus = models.CharField(choices = DOCTOR_STATUS ,max_length = 15 , default="")
class PatientModel(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
patientName = models.CharField(max_length = 150 , default="", editable=True)
patientAge = models.IntegerField(default=0)
patientEmail = models.EmailField(max_length=50, default="", editable=True)
insuranceSyndicate = models.CharField(choices = INSURANCE_SYNDICATE, max_length = 15, default="")
slug = models.SlugField(max_length = 50 , default= '')
referencedDoctor = models.ForeignKey(DoctorModel, on_delete=models.Set_Null)
我想要的是,当患者选择“参考医生”时,他从DoctorModel中的“doctorName”中选择他
我该怎么做呢?您应该为您的模型创建_; str _;方法
class DoctorModel(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
doctorName = models.CharField(max_length = 150 , default="")
doctorEmail = models.EmailField(max_length=50, default="")
speciality = models.CharField(choices = SPECIALITY ,max_length = 20 , default="")
doctorStatus = models.CharField(choices = DOCTOR_STATUS ,max_length = 15 , default="")
def __str__(self):
return f"{self.doctorName}"
顺便说一句,尝试对字段使用null=True。将更容易实现。您可以在医生模型中定义dunder字符串函数,如下所示
class DoctorModel(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
doctorName = models.CharField(max_length = 150 , default="")
doctorEmail = models.EmailField(max_length=50, default="")
speciality = models.CharField(choices = SPECIALITY ,max_length = 20 , default="")
doctorStatus = models.CharField(choices = DOCTOR_STATUS ,max_length = 15 , default="")
def__str__(self):
return self.doctorName