问题描述
我想构建一个应用程序,让患者将报告上传给他的同伴医生, 所以,我有两种模型,一种用于医生,另一种用于患者。 我想要的是两个模型之间的关系,其中患者从注册医生中选择他的医生。
这是代码:
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,editable=True)
insuranceSyndicate = models.CharField(choices = INSURANCE_SYNDICATE,default="")
slug = models.SlugField(max_length = 50,default= '')
referencedDoctor = models.ForeignKey(DoctorModel,on_delete=models.Set_Null)
我想要的是,当患者选择“referencedDoctor”时,他会从 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。会更容易实施。
,你可以像这样在Doctor模型中定义一个dunder字符串函数
class DoctorModel(models.Model):
user = models.OneToOneField(CustomUser,default="")
def__str__(self):
return self.doctorName