【问题标题】:Problem with querying a many to one in django在 django 中查询多对一的问题
【发布时间】:2022-06-12 02:38:50
【问题描述】:

我对 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() 属性的,但我看不出问题出在哪里。

【问题讨论】:

  • klinikid.Patient_set.all()

标签: python django


【解决方案1】:

在获取 Klinik 对象后,要获取与其关联的所有患者,您应该使用该对象 像这样:klinikid.patient_set.all() patient_set 是小写的,并且来自对象,而不是 Klinik 类

你也可以给 Patient field klinik 一个相关的名字,这个 related_name 将“覆盖”modelname_set 更多关于文档https://docs.djangoproject.com/en/4.0/topics/db/queries/#backwards-related-objects

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2018-03-26
    • 2013-08-18
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 2011-07-29
    相关资源
    最近更新 更多