Django获取主要+外部属性

时间:2015-09-05 07:34:51

标签: python django python-3.x django-templates

我有两个模型:SiteMetric

我想在每个Metric旁边显示Site值。

我的views.py如下:

from django.shortcuts import render
from .models import Site, Metric
def site_graph(request):
    sites = Site.objects.order_by('name')
    metrics = [s.metric_set.all() for s in sites]
    return render(request, 'da/site_graph.html', {'sites': sites, 'metrics': metrics})

我的模板内容如下所示:

{% block content %}
    {% for metric in  metrics %}
        [
        {% for query in metric %}
            {{ query.domain_authority }}
            {{ query.date_queried }}
        {% endfor %}
        ]
    {% endfor %}
{% endblock content %}

我不确定如何在Django中获取所需的数据。

这些数据最终会传递到d3.js进行可视化,这就是为什么我需要匹配每个Site的主键的数据。

1 个答案:

答案 0 :(得分:1)

您可以使用词典列表:

def site_graph(request):
    metrics=[]
    sites = Site.objects.order_by('name')
    for site in sites:
        metrics_site={}
        metrics_site["site"] = site
        metrics_site["metrics"] = site.metric_set.all()
        metrics.append(metrics_site)
    return render(request, 'da/site_graph.html', {'metrics': metrics})

然后在模板中:

{% block content %}
    {% for metric in  metrics %}
        {{ metric.site.name }}
        {% for query in metric.metrics %}
            {{ query.domain_authority }}
            {{ query.date_queried }}
        {% endfor %}

    {% endfor %}
{% endblock content %}

metric.site.name只是一个示例,如果您的模型“site”包含您要显示的字段“name”。