template.html 是
{% for field in types%}
{{field}}<br />
{% endfor %}
我尝试按字母顺序对列表进行排序。type_list = Types.objects.filter(user=user.id, parent_type_id=True).order_by('title')
在上面的视图中使用它进行排序。我不知道我是否查询正确。它没有给出任何错误,但功能没有发生。需要帮助。
谢谢
template.html 是
{% for field in types%}
{{field}}<br />
{% endfor %}
我尝试按字母顺序对列表进行排序。type_list = Types.objects.filter(user=user.id, parent_type_id=True).order_by('title')
在上面的视图中使用它进行排序。我不知道我是否查询正确。它没有给出任何错误,但功能没有发生。需要帮助。
谢谢
如果要按字母顺序排列表单的选项,则必须在表单内部而不是视图中修改获取它们的查询,因此修改__init__
表单方法中的行,如下所示:
def __init__(self, type_id, *args, **kwargs):
...
type = Types.objects.filter(parent_type_id=type_id).order_by('title')
MY_CHOICES=((type.id, type.title) for type in type)
_type_checkbox.choices = MY_CHOICES
...
希望这可以帮助!
如果只需要在渲染模板时进行排序,那么我更喜欢dictsort的简单性。
{% for field in types|dictsort:"title" %}
{{field}}<br />
{% endfor %}
请注意,它在大小写方面有一些奇怪的行为。我认为它优先考虑大写单词而不是大写单词,而不是以不区分大小写的方式运行。