【问题标题】:Django Get Primary + Foreign AttributesDjango获取主要+外部属性
【发布时间】:2015-12-01 08:32:08
【问题描述】:

我有两个模型:SiteMetric

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

我的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 的主键匹配的数据放在一起。

【问题讨论】:

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


    【解决方案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 只是一个示例,如果您的模型“站点”包含您要显示的字段“名称”。

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多