gpt4 book ai didi

django - 如何在 Django model.object.values() 中对列字段进行排序

转载 作者:行者123 更新时间:2023-12-04 06:20:43 25 4
gpt4 key购买 nike

我正在使用这个

objects = Model.objects.values('var1', 'var2', 'var4')

我使用的模板
{% for fieldname in object.keys %}<th>{{ fieldname }}</th>{% endfor %}
但是字段名称以任意顺序出现,例如
var4---var1----var2

我希望它们看起来像我在功能中提供的那样
var1---var2----var4

这可能吗

最佳答案

最简单的解决方案是使用 values_list ,它返回元组并相应地更改您的模板。
https://docs.djangoproject.com/en/1.3/ref/models/querysets/#django.db.models.query.QuerySet.values_list

如果出于某种原因,您想继续使用 dict-s,并想要一个“自动”解决方案,则必须做很多工作:

  • 子类 Django 的 ValuesQuerySet ,将其命名为 ex。 OrderedValuesQueryset并将其更改为 iterator使用方法OrderedDict http://docs.python.org/dev/library/collections.html#collections.OrderedDict
  • 创建一个 Queryset子类
    在它的 .values方法返回一个实例
    您的 OrderedValuesQuerySet
  • 创建自定义 models.Manager其中的类是 get_query_set方法使用您的自定义 QuerySet来自 2.
  • 设置要在您的模型中使用的自定义管理器。见 https://docs.djangoproject.com/en/1.3/topics/db/managers/#custom-managers

  • 现在,您尝试执行的操作将在该模型上自动运行。您还可以将自定义管理器设置为与 objects 不同的属性。 , 以保持默认管理器可用。

    关于django - 如何在 Django model.object.values() 中对列字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609847/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com