我有一个页面“详细信息视图”,其中包含一个带有“详细信息视图”链接的按钮。但是就像该网址需要PK一样,我无法将PK设置为详细视图。如何在没有PK的情况下为上一页定义一个URL?
在模板
中 <button id="botaoVoltar" type="submit" class="mb-10 btn btn-light"><a href="{% url 'relatorio' ??? %}">Voltar</a> </button>
在网址
中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]+)$']
答案 0 :(得分:1)
您可以定义一种方法来查找上一个对象:
class RelatorioView(DetailView):
# …
def get_previous(self):
return self.get_queryset().filter(
pk__lt=self.object.pk
).order_by('-pk').first()
接下来,我们可以使用它来获取上一个:
{% with prev=view.get_previous %}
{% if prev %}
<button id="botaoVoltar" type="submit" class="mb-10 btn btn-light">
<a href="{% url 'relatorio' prev.pk %}">Voltar</a>
</button>
{% endif %}