Как сделать так, чтобы при нажатии на кнопку изменялся параметр django order_by?

Здесь представлена моя функция views.py.

def publications(request):
    if request.method == 'POST':
        publications = UserPublications.objects.all().order_by('status_date')
    else:
        publications = UserPublications.objects.all().order_by('contributors')


    context = {'publications': publications}
    return render(request, 'users/publications.html', context)

Вот мои публикации.html:

<button type="submit" method="POST">Filter By Date</button>
<ol  class="text">
    {% for publication in publications %}
        <div>{{publication.text}}</div>
    {% endfor %}
</ol>

Я хочу, чтобы на кнопку можно было нажать, и если кто-то нажимает на нее, она меняет фильтр на фильтр по дате, а не по вкладчикам (оба атрибута моей модели). Как мне это сделать? Сейчас у меня нет ошибок, но при нажатии на кнопку сортировка объектов не обновляется. Заранее спасибо.

Кнопка должна быть связана с <form>, поэтому:

<form method="POST" action="{% url 'view-name-for-publications' %}">
    <button type="submit">Filter By Date</button>
</form>

Однако не имеет особого смысла использовать метод запроса HTTP для определения того, сортировать по дате или нет. Обычно вы делаете GET запрос с строкой запроса [wiki], чтобы указать, по какому полю будет производиться сортировка.

Вернуться на верх