有人可以帮我从这个模型结构中获取数据吗?因为我现在很难坚持几个小时。
首先,我想从所有具有给定SubSpecialization
Doctor
获取所有不同的Specialization.title
其次,我希望获得具有特定Doctor
但没有Specialization.title
的所有SubSpecialization
。
以下是Doctor
型号
class Doctor(models.Model):
name = models.CharField(max_length=50)
room_no = models.IntegerField()
floor_no = models.IntegerField()
contact_no = models.CharField(max_length=50, blank=True, null=True)
notes = models.CharField(max_length=70, blank=True, null=True)
此模型Doctor
关系已与Specialization
和SubSpecialization
相关联。
class DoctorSpecialization(models.Model):
doc = models.ForeignKey(Doctor, models.DO_NOTHING)
spec = models.ForeignKey('Specialization', models.DO_NOTHING)
class DoctorSubSpecialization(models.Model):
doc = models.ForeignKey(Doctor, models.DO_NOTHING)
sub_spec = models.ForeignKey('SubSpecialization', models.DO_NOTHING)
这是我制定标准的地方。
class Specialization(models.Model):
title = models.CharField(unique=True, max_length=45)
point = models.IntegerField()
class SubSpecialization(models.Model):
title = models.CharField(max_length=100)
Specialization
和SubSpecialization
请求帮助之间没有直接关系。
答案 0 :(得分:1)
首先,你的专业化和亚专业化是与Doctor的多对多关系。您应该明确声明,并删除那些介入模型,除非您需要在其上存储其他信息。
class Doctor(models.Model):
...
specializations = models.ManyToManyField('Specialization')
subspecializations = models.ManyToManyField('SubSpecialization')
现在,您可以查询具有特定专业化的医生的所有子专业化:
SubSpecialization.objects.filter(doctor__specialization__title='My Specialization')
鉴于专业化与次专业化之间没有关系,你的第二个问题没有意义,你需要澄清你的意思"在特定的专业化中没有亚专业化"
修改强>
找到具有特定专业化但根本没有专业化的医生:
Doctor.objects.filter(specialization__name="My Specialization",
subspecialization=None)