Как изменить элементы позиции в наборе запросов? - PullRequest
0 голосов
/ 09 июля 2011

Я получил:

model_list = Models.objects.filter(date_of_addition__gte=today).order_by('name')

Как изменить элементы позиции в представлении, например поместить 5-й элемент (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

Ответы [ 3 ]

1 голос
/ 09 июля 2011

Для вашего примера:

for m in [model_list[4]] + model_list[0:4] + model_list[5:]
0 голосов
/ 09 июля 2011

Это может быть то, что вы пытаетесь сделать

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 ]

Трудно сказать - исходя из вопроса - что вы пытаетесь сделать.

0 голосов
/ 09 июля 2011

Используйте 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:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...