Не удалось проанализировать остаток: '(' -date_posted ')' из 'post.answers_set.all.order_by (' - date_posted ')' - PullRequest
1 голос
/ 20 июня 2020

{% for answer in post.answers_set.all.order_by('-date_posted') %}

Я использую эту строку для получения всех ответов, связанных с этим вопросом в models.py. когда я работал в оболочке django, он работал нормально, но в шаблоне django он показывает странную ошибку «Не удалось проанализировать остаток: '(' -date_posted ')' из 'post.answers_set.all.order_by (' -Дата Отправки')'". Есть ли альтернатива, пожалуйста, предложите. Заранее благодарим за помощь.

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете использовать фильтры в шаблоне django.

Создайте каталог «templatetags» в каталоге приложения, а затем создайте файлы «_ init _. Py» и «filters.py» к нему.

app_directory
    templatetags
          __init__.py
          filters.py

Оставьте _ init _. py пустым и добавьте следующий код в filter.py :

from django import template
register = template.Library()

@register.filter
def sort_by(queryset, order):
    return queryset.order_by(order)

Затем вы можете использовать "sort_by" фильтр в html файлах после загрузки:

<html lang="en">
{% load filters %}
<body>
{% for answer in post.answers_set.all|sort_by:'-date_posted' %}
    <p>{{ answer.pk }}</p>
{% endfor %}
</body>
</html>
...