我遇到了django模型查询。
我的模特:
class ProjectCategory(models.Model):
name=models.CharField(_('Categoryname'), max_length=250)
class Reference(models.Model):
title=models.CharField(_('Title'),max_length=250)
category=models.ForeignKey(ProjectCategory)
start_date=models.DateTimeField(_('Start date'),
help_text= _(u'Starting date of the project'),
)
end_date=models.DateTimeField(_('End date'),
help_text= _(u'Project end date'),)
class Project(Reference):
size=models.CharField(_('size'),max_length=250)
我需要一个所有类别的列表(按名称排序)及其所有参考和项目(由start_date排序。
e.g
Category1
-Reference 1 1.1.2012
-Project 1 1.1.2013
-Reference 2 1.1.2014
Category2
-Project 2 1.1.2000
-Reference 3 1.1.2001
如何构建查询和模板?
答案 0 :(得分:1)
查询是直截了当的:
categories = ProjectCategory.objects.select_related().all().order_by("name")
在模板中,您只需要遍历category_set
,因为应该在那里找到Reference
和Project
。 dictsort
应该在模板中进行排序:
{% for c in categories %}
<h2> {{ c }} </h2>
<ul>
{% for r in c.category_set.all|dictsort:"start_date" %}
<li> {{ r }} </li>
{% endfor %}
<ul>
{% endfor %}