django中查询多对一的问题



我是Django的新手。我试图在我的程序中进行多对一查询。

我正在创建一个诊所站点,我希望在其中显示给定诊所的患者列表。

我有以下model.pyviews.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

最新更新