我得到了:
model_list = Models.objects.filter(date_of_addition__gte=today).order_by('name')
如何在视图中更改位置元素,例如将5th(model_list.id = 5)元素放在列表顶部?
模板:
{% for m in model_list %}
<li>{{m.name}}</li>
{% endfor %}
得到:
Toyota
Audi
BWM
Chevrolet
Honda
VW
代替:
Audi
BWM
Chevrolet
Honda
Toyota
VW
答案 0 :(得分:1)
对于你的例子:
for m in [model_list[4]] + model_list[0:4] + model_list[5:]
答案 1 :(得分:0)
使用del
删除项目。使用insert
在任意位置放置项目:
>>> lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> item5 = lst[5]
>>> del(lst[5])
>>> lst
['a', 'b', 'c', 'd', 'e', 'g']
>>> lst.insert(0, item5)
>>> lst
['f', 'a', 'b', 'c', 'd', 'e', 'g']
或者,您可以构建一个新列表:
newlst = [lst[5]] + lst[:5] + lst[6:]
答案 2 :(得分:0)
这可能就是你想要做的事情
model_list = Models.objects.filter(date_of_addition__gte=today,id__gte=5).order_by('name')
或许这个
model_list = list(Models.objects.filter(date_of_addition__gte=today).order_by('name'))
model_list = [ m for m in model_list if m.id >= 5 ]
很难说 - 根据问题 - 你要做什么。