繁体   English   中英

django:获取相关对象的排序列表(不同模型)

[英]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因为应该在其中找到ReferenceProject 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM