我有以下型号:
class CompanyReport(models.Model):
company = models.CharField(max_length=300)
desc = models.TextField()
text = models.TextField()
date = models.DateTimeField()
report
reports
我想要做的是year
菜单。
当我在multilevel dropdown
工作时,我能够使用3个不同的查询来完成此任务。
我刚刚运行了3个嵌套循环,1个用于公司数量,另一个用于该公司的年数,最后一个用于公司一年的报告数量,然后我只显示了下一个报告来自列表。
我可以使用php
执行相同操作,但我无法遍历模板中的对象,因为只有此操作可用Manager.raw
。我需要两件事
{% for obejct in object_list %}
number based for loop
,它只是从查询列表中获取下一个元组。预期输出我想要显示的输出类型位于我上传的屏幕截图中。
非常感谢任何形式的帮助。
答案 0 :(得分:4)
我不确定为什么你需要基于循环的数字。普通的迭代器是在Python中进行循环的正确方法。
如果出于某种原因在循环期间需要索引,则可以使用:{{forloop.counter}}
表示单索引计数器,或{{forloop.counter0}}
表示零索引计数器。
您的语法将如下所示:
{% for company in company_list %}
{{ company.company }}
{% for company_year in company_year_list %}
{% if company.date == company_year.date %} #note: this is pseudocode. you need a better comparison
{{ company_year.date }}
{% for company_report in company_report_list %}
{% if company_report.company == company and company_report.year = company_year.date %}
{{ company_report.report }}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}