Django在表中显示数据 - 表中的表的排序(嵌套的forloop?)。数据也需要链接

时间:2016-08-29 08:38:59

标签: python django

我不确定解释它的最佳方法,所以我创建了一个示例图片并编制了一些数据:

Table

我查看了这篇文章并知道我需要使用一些forloop模板内容:Displaying a Table in Django from Database

让我失望的部分是如何在表格中使用表格。例如,医生' Bob"有3个不同的患者。 Bob有一排,但Bob的患者专栏有3行。

Event

我无法找到这样的例子来解决问题并且不确定如何处理它。

我还需要这些患者链接到患者页面。因此,如果我点击鲍勃的病人' C755'我将被引导到该患者的页面。我想的是:

        <table class="table table-striped table-bordered">
        <thead>
            <th>Name</th>
            <th>Total Patient Meetings</th>
            <th>Patient</th>
            <th>Meetings for Patient</th>
        </thread>
        <tbody>
            {% for doctor in query_results %}
            <tr>
                <td> {{ doctor.name }} </td>
                <td> {{ doctor.total_meetings }}</td>

                //*Would I have a nested forloop in here?*//

                {% for patient in query_results2 %}
                <td> {{patient.name }} </td>
                <td> {{patient.meeting_number }}</td>
                {% endfor %}
            </tr>
            {% endfor %}
        </tbody>
    </table>

感谢您的帮助。只是不确定最好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

&#34; A&#39;相关经理&#39;是一对多对多或多对多的经理   相关背景。&#34;   https://docs.djangoproject.com/en/1.10/ref/models/relations/

我无法看到doctorpatient之间的关系如何,但假设它是这样的:

class Patient(models.Model):
    name = models.CharField(max_length=50)

class Doctor(models.Model):
    patient = models.ManyToManyField(Patient, verbose_name='patients')

您可以使用:

轻松迭代doctor.patient
{% for doctor in doctors %}
    {% for patient in doctor.patients.all %}
        {{ patient.name }}
    {% endfor %}
{% endfor %}

如果您没有关系的verbose_name属性,那么您可以使用doctor.patients.all而不是doctor.patients_set.all。{/ p>

在患者页面中,您可以使用课程Patient中的方法轻松完成此操作:

<a href="{{ patient.get_absolute_url }}">{{ patient.name }}</a>
  

&#34;在您的模型上使用get_absolute_url,它可以在每个对象的基础上处理它们,在整个网站上更简单,更清晰&#34;

https://godjango.com/67-understanding-get_absolute_url/