详细视图的详细视图中的上一页 - Django
Page previous in Detail View for Detail View - Django
我有一个页面详情视图,其中包含一个带有 link 按钮的详情视图。但是就像 url 需要 PK,我不能将 PK 设置为详细视图。如何在没有 PK 的情况下为上一页定义 url?
在模板中
<button id="botaoVoltar" type="submit" class="mb-10 btn btn-light"><a href="{% url 'relatorio' ??? %}">Voltar</a> </button>
在urls
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]+)$']
您可以定义一个方法来查找上一个对象:
class RelatorioView(DetailView):
# …
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 %}
我有一个页面详情视图,其中包含一个带有 link 按钮的详情视图。但是就像 url 需要 PK,我不能将 PK 设置为详细视图。如何在没有 PK 的情况下为上一页定义 url?
在模板中
<button id="botaoVoltar" type="submit" class="mb-10 btn btn-light"><a href="{% url 'relatorio' ??? %}">Voltar</a> </button>
在urls
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]+)$']
您可以定义一个方法来查找上一个对象:
class RelatorioView(DetailView):
# …
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 %}