Предыдущая страница в подробном представлении для подробного просмотра - Django - PullRequest
1 голос
/ 09 июля 2020

У меня есть страница "Подробный просмотр" с кнопкой со ссылкой для подробного просмотра. Но так же, как для URL-адреса нужен ПК, я не могу установить ПК как подробный вид. Как я могу определить URL-адрес предыдущей страницы без PK?

In Template

<button id="botaoVoltar" type="submit" class="mb-10 btn btn-light"><a href="{% url 'relatorio' ??? %}">Voltar</a> </button>

In URL-адреса

path('relatorios/relatorio/<int:pk>', RelatorioView.as_view(), name='relatorio')

Исключение:

NoReverseMatch Exception Value:  
Reverse for 'relatorio' with no arguments not found. 1 pattern(s) tried: ['relatorios/relatorio/(?P[0-9]+)$']

1 Ответ

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

Вы можете определить метод для поиска предыдущего объекта:

class RelatorioView(DetailView):
    # &hellip;
    def get_previous(self):
        return self.get_queryset().filter(
            <b>pk__lt=self.object.pk</b>
        ).order_by('-pk').first()

Затем мы можем использовать это для получения предыдущего:

{% with <b>prev=view.get_previous</b> %}
{% if prev %}
    <button id="botaoVoltar" type="submit" class="mb-10 btn btn-light">
        <a href="{% url 'relatorio' <b>prev.pk</b> %}">Voltar</a>
    </button>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...