我是Django的新手。我试图在我的程序中进行多对一查询。
我正在创建一个诊所站点,我希望在其中显示给定诊所的患者列表。
我有以下model.py
和views.py
:
models.py
class Klinik(models.Model):
# code
class Patient(models.Model):
klinik = models.ForeignKey(Klinik, null=True, on_delete=models.SET_NULL)
views.py
def kartotek(request, kl_id):
klinikid = Klinik.objects.get(id=kl_id)
patienter = Klinik.Patient_set.all()
context = {'patients':patienter,}
return render(request,'DentHelp/kartotek.html', context )
错误信息是_set.all()
属性,但我看不出问题是什么。
在获得Klinik对象后,要获取与它链接的所有患者,您应该使用该对象像这样:klinikid.patient_set.all()
patient_set是小写的,并且来自对象,而不是类Klinik
你也可以给病人字段链接一个相关的名字,这个related_name将会"覆盖"。的modelname_set更多关于文档https://docs.djangoproject.com/en/4.0/topics/db/queries/#backwards-related-objects