【发布时间】:2021-10-09 21:21:00
【问题描述】:
我有与 ICF 模型有多对多关系的患者模型。 ICF 模型与 Unite 模型具有多对一字段。在 Unite 模型中,我有 Unite 名称。我想找到分配给有关系的患者的 Unite 名称。我尝试找到每位患者的 Unite 名称。如果不止一个,我无法为那个人列出它们。这是我的代码。
这是我的病人模型。
class Patient (models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
lastname = models.CharField(max_length=255, default="doe")
data = models.JSONField()
Intensivecare_form = models.ManyToManyField(Intensivecare_Form)
isDeleted = models.BooleanField(default=False)
这是我的 ICF 模型。
class Intensivecare_Form (models.Model):
id = models.AutoField(primary_key=True)
hospitals_id = models.ForeignKey(Hospital, on_delete=models.CASCADE)
formname = models.CharField(max_length=128)
data = models.JSONField()
unites_id = models.ForeignKey(Unite, on_delete=models.CASCADE)
最后,这是我的 Unite 模型
class Unite (models.Model):
id = models.AutoField(primary_key=True)
unitename = models.CharField(max_length=128)
在我的 views.py 文件中,我有一个如下功能
def listPatients(request):
Patients = Patient.objects.all()
output = []
for patient in Patients:
unitename = []
icfinfo = serializers.serialize('json', patient.Intensivecare_form.all())
jsonicfinfo = json.loads(icfinfo)
unitename.append(jsonicfinfo)
output.append({'id': patient.id,
'fname': patient.name,
'lname': patient.lastname,
'data': patient.data,
'unitename': unitename,
})
return JsonResponse(output, safe=False)
这就是输出的样子。我需要在 unitename 中到达 formname
0-> id, fname..., unitename-> 0 -> 字段 -> unitename
【问题讨论】:
-
您是否有理由覆盖每个模型的 id 字段而不是使用 Django 默认值?另外,您能否更明确地说明这个问题。
-
我是 django 的新手。我想通过创建项目来学习。覆盖每个模型的 id 字段是什么意思?我的问题是我怎样才能为每个人达到类似于 person.icform.unites_id.unitesname 的统一名称?
-
Django 会自动为您添加 ID 字段 - 您不必显式执行此操作,除非您想要不同的 ID 类型 IE uuid。
标签: django model many-to-many relational-database relationship