Python Django:记录分组

Python Django:记录分组,python,django,Python,Django,如果问题的标题不正确,请道歉。请有人纠正它,如果这里的细节让你知道我的要求。我不会说英语,所以可能会在标题的措辞上出错 我有这个模型: class ClinicDoctor(models.Model): doctor = models.ForeignKey('User', related_name='doctorsF') # single quotes (') because User table is defined down the code. clinic = models

如果问题的标题不正确,请道歉。请有人纠正它,如果这里的细节让你知道我的要求。我不会说英语,所以可能会在标题的措辞上出错

我有这个模型:

class ClinicDoctor(models.Model):
    doctor = models.ForeignKey('User', related_name='doctorsF') # single quotes (') because User table is defined down the code.
    clinic = models.ForeignKey(Clinic, related_name='clinicsF')
我正试图找到所有的医生记录和他们的诊所。有些医生可能有多个诊所。在我的模板中,我循环了以下查询集:

doctorsQuerySet = ClinicDoctor.objects.filter(doctor__groups__name='Doctor')
这将返回记录,但我希望在如下表中显示记录:

医生长------临床医生 医生1------诊所1,诊所2。 医生2------诊所3 医生3------诊所4、诊所5、诊所7

我的想法是,我只想给每个医生看一次,然后把他所有的相关诊所放在医生的那一排

现在,我正在循环模板中的查询集,但这将显示相同的医生记录,其数量是相关诊所的数倍

是否有任何方法可以修改上面的查询以实现分组,或者我必须在模板中处理它,以查看Doctor_id何时从上一次循环运行更改并连接诊所,然后将它们放入标记中

我试图继续搜索,但没有找到与我的情况相关的问题。可能是我搜索时的措辞与我正在寻找的不一样。所以,如果已经有人解决了,就道歉。你可以分享这个链接


谢谢。

如果您只需要模板中的数据,您可以使用以下注意事项:下面的代码实际上没有经过测试,但有望为您提供正确的方向:

views.py

...
# Pass whatever model is the foreign key for "doctor" in the ClinicDoctor model
context = {"doctors": User.objects.all()}
...
template.html

<table>
  <thead>
    <tr>
      <th>Doctor Header</th>
      <th>Clinics Header</th>
    </tr>
  </thead>
  <tbody>
    {% for doctor in doctors %}
      <tr>
        <td>{{ doctor }}</td>
        <td>
          {% for clinicdoctor in doctor.clinicdoctor_set.all %}
            clinicdoctor.clinic{% if not forloop.last %}, {% endif %}
          {% endfor %}
        </td>
      </tr>
    {% endfor %}
  </tbody>
</table>
首先将医生查询集传递到模板,然后循环它们。clinicdoctor_set.all将检索该医生的所有clinicdoctor条目。使用_set.all可以反向检索外键关系中的所有条目。然后,您可以正常引用关联的诊所外键

{%if not forloop.last%},{%endif%}将在每个临床条目之间添加一个逗号,循环的最后一个条目除外

您可以在和下阅读更多关于此的内容