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%}将在每个临床条目之间添加一个逗号,循环的最后一个条目除外
您可以在和下阅读更多关于此的内容