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