在Djang中定义QuerySet的位置

2024-10-02 00:30:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想定义一个查询集。在shell中,一切都很好,我可以用以下工具过滤我想要的列:

pat1 = Patient.objects.get(pk=1)
pat1.examinationgeometry_set.filter(examination='FIRST')

现在我想从中定义一个查询集,但是我不知道在哪里定义它以及如何定义它。在视图、模板、模型中?我该怎么写呢?我知道我必须用一个函数来定义它,但是django有没有为它定义函数呢?在

这个查询集背后的想法是在我的数据库中显示第一次检查的所有结果。所以在我的模板中我有这样的东西:

我很感谢你的每一个暗示!在


Tags: 工具函数模板getobjects定义shellfilter
1条回答
网友
1楼 · 发布于 2024-10-02 00:30:04

查询集应该在视图中生成,而不是在模板中生成,根据您的代码,应该是这样的:

在视图.py公司名称:

def my_view:
  patients = Patient.objects.all()
  context = {"patients": patients}
  return render(request, "template_path", context)

在模板.html公司名称:

^{pr2}$

更好的选择是为患者模型创建一个python属性,如下所示:

class Patient(stuff):
  # your model stuff
  @property
  def first_examinationgeometry_set():
    # maybe this should use .get() instead of filter?
    return self.examinationgeometry_set.filter(examination="FIRST")

现在在模板中调用它(与第一个示例相同的视图):

{% for patient in patients %}
  {% with geo=patient.first_examinationgeometry_set %}
    <li> 
        x:  {{ geo.x }}<br/>
        c: {{ geo.c }}<br/>
        b: {{ geo.b}}<br/>
        n: {{ geo.n}}<br/>
    </li>
  {% endwith %}
{% endfor %}

相关问题 更多 >

    热门问题