django - 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 表未在数据库中显示/创建。其次,当我保存诊所但医生不保存时,它返回错误医生医院不存在。
保存医生时显示此错误视图
解决方案
推荐阅读
- sqlite - 在另一张桌子上查找最长的匹配号码
- mongodb - 使用验证规则更新 mongodb 集合时如何禁止未知属性?
- angular - 带有 Angular 7 的微型应用程序 - Zone.js 和自定义元素问题
- amazon-web-services - AWS ECS - Can't connect to RabbitMQ EC2 instance from ECS container instance on the same subnet
- ajax - 忽略来自 ajax url 的 http:localhost
- php - 以编程方式识别覆盖特征方法的方法
- mysql - 是否可以使用 mysql 脚本获取列表对象的数据?
- node.js - jest-dev-server 的使用示例中的 config/start.js 是什么
- mysql - MySQL 连接/子查询,其中结果由外部表的多个值过滤
- php - 如何在不知道扩展名的情况下获取文件扩展名