[英]django: get ordered list of related objects (different models)
我一直陷在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排序)的列表。
例如
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
如何构建查询和模板?
该查询很简单:
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 %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.