Как упорядочить / отредактировать / удалить результаты, возвращенные из пользовательского фильтра - PullRequest
0 голосов
/ 30 июня 2011

Вот мой фильтр:

@register.filter
def filter_by_user(queryset, user):
    """Filter the queryset by (currently logged in) user"""
    return queryset.filter(accountowner=user)

Вот мой шаблон:

<td>{{ object_list.all|filter_by_user:user|safeseq|join:". " }}</td>

Вот вывод:

ACB test 5.0 55.0. ACB test 14.0 144.0 

Вот что я предпочел бы

1. ACB test 5.0 55.0 Edit Delete

2. ACB test 14.0 144.0 Edit Delete

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Используйте unordered_list вместо join - несмотря на название, если вы оберните его в теги <ol>...</ol>, это будет упорядоченный список.

Однако выдолжно действительно делать это в представлении.

Редактировать

Собственно, вот лучшее решение:

<ol>
{% for obj in object_list.all|filter_by_user:user %}
    <li>{{ obj }} <a href="{% url edit_object obj.id %}">Edit</a> <a href="{% url delete_object obj.id %}"Delete</a></li>
{% endfor %}
</ol>

Конечно, это зависит оту вас есть edit_object и delete_object URL в вашем urlconf.

0 голосов
/ 30 июня 2011

Что ж, тогда вам нужно будет сохранить результат в переменной и выполнить итерацию по ней, создавая ваши ссылки.Не кодируйте ссылки в фильтре жестко.

...