【问题标题】:How to order a set of object in a view如何在视图中订购一组对象
【发布时间】:2013-09-29 19:08:31
【问题描述】:

我的代码目前列出了server 中的所有domains 使用:

{% for domain in server.domain_set.all %}

我想通过它们的 url 对视图中的域进行排序。比如:

{% for domain in server.domain_set.all().order_by('url') %}

但我得到了一个例外"could not parse the remainder"。如何订购列表?

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    “无法解析余数”错误是因为您在 django 模板中包含 Python 代码。 Django 不允许这样做。

    您可以在模型上添加一个方法:

    def sorted_domains(self):
        return self.domain_set.all().order_by('url')
    

    然后这样称呼它:

    {% for domain in server.sorted_domains %}
    

    另一种方法是使用Meta attributeDomain 模型上设置默认排序顺序。

    【讨论】:

    • 好建议,+1。
    • @BurhanKhalid 同意,我真的很喜欢这个,而不是在模板中这样做。干净多了。
    【解决方案2】:

    您可以使用dictsort 过滤器:

    获取字典列表并返回按键排序的列表 在参数中给出。

    {% for domain in server.domain_set.all|dictsort:'url' %}
    

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多