0

作为一个刚开始在我稀缺的时间使用 Django 的人,我提前感谢您花时间帮助我学习如何使我的代码更清晰和正确。

我有两个列表,由两个查询集组成,如下所示:

company_list = [Company_stats.objects.filter(period__exact=P, company_name__in=master_names)]
industry_list = [Industry_stats.objects.filter(period__exact=P, industry_name__in=master_names)]    

我遍历模板中的两个列表以创建一个小表。

{%for c in company_list%}
    {%for z in c %}
         {{ z.company_name }}                  
         {{ z.nxt_m_ret_est }} 
         {{ z.nxt_m_ret_rat }} 
    {% endfor %}
{% endfor %}

{%for c in industry_list%}
    {%for z in c %} 
         {{ z.industry_name }}                  
         {{ z.nxt_m_ret_est }} 
         {{ z.nxt_m_ret_rat }}  
    {% endfor %}
{% endfor %}

但是,这很好用,因为除了 z.industry_name 与 z.company_name 之外,我使用的是相同的代码,我想知道您是否可以帮助我找出更好的方法来做到这一点。

我尝试将列表合并到一个列表中,其中包含两个查询集,除了明显的问题,我不知道如何告诉它检索 z.company_name 或 z.industry_name,具体取决于数据来自的查询集从,因为一切都成为同一个列表的一部分。

4

2 回答 2

2

一旦您将字段更改为name两个模型上的字段,您就可以将两个查询集放入同一个列表中,然后对其进行迭代。

master_list = [model.objects.filter(period__exact=P, name__in=master_names) for model in (Company_stats, Industry_stats)]

...

{% for l in master_list %}
    {% for i in l %}
         {{ i.name }}                  
         {{ i.nxt_m_ret_est }} 
         {{ i.nxt_m_ret_rat }} 
    {% endfor %}
{% endfor %}
于 2012-12-08T19:12:08.170 回答
0

如果您想让代码更通用,这将有助于使您的名称更通用。您是否有可能在整个系统中进行更改和更改industry_namecompany_namename

于 2012-12-08T19:04:32.660 回答