首页 > 解决方案 > Django 和中间表中的 M2M 关系包含额外字段

问题描述

我必须对具有 M2M 关系的模型进行建模,它们是诊所和医生,但第三个自定义中间表具有额外的字段移位。

class ClinicHospital(models.Model):
    name  = models.CharField(max_length = 256)
    address = models.TextField()
    contact = models.CharField(max_length = 15)
    lat = models.FloatField()
    lon = models.FloatField()

class Doctor(models.Model):
    name =  models.CharField(max_length = 256)
    speciality = models.CharField(max_length = 256)
    contact = models.CharField(max_length = 12)
    speciality = models.ForeignKey(Speciality, on_delete=models.CASCADE)
    clinic_hospital = models.ManyToManyField(ClinicHospital, through='DoctorHospital')

中间表是

class DoctorHospital(models.Model):
    clinic = models.ForeignKey(ClinicHospital, on_delete=models.CASCADE)
    doctor = models.ForeignKey(Doctor, on_delete=models.CASCADE)
    shift = models.CharField(max_length = 10)

问题 首先,DoctorHospital 表未在数据库中显示/创建。其次,当我保存诊所医生不保存时,它返回错误医生医院不存在。

在此处输入图像描述

保存医生时显示此错误视图

标签: djangodjango-modelsdjango-views

解决方案


推荐阅读