Django URL链接

时间:2019-04-29 15:00:45

标签: django url parameters

我有2个按钮,当我点击其中一个按钮时,我想使用id作为参数重定向到新的html页面。

我的网址

urlpatterns = [
    path('', admin.site.urls, name ='home'),
    path('dpo/imprimir/aprovado/<int:id>/',Aprovado, name ='aprovado'),
    path('dpo/imprimir/reprovado/<int:id>/',Reprovado, name ='reprovado'),
    ]

我的模板

{% load i18n admin_urls %}
{% block object-tools-items %}
<li>
    <a href="/dpo/imprimir/aprovado/{{instance.id}}">{% trans "Aprovado" %}</a>
</li>
<li>

    <a href="/dpo/imprimir/reprovado/{{instance.id}}">{% trans "Não aprovado" %}
</li>
{% endblock %}

我的观点

from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import render_to_response
from .models import Projeto


def Aprovado(request, id):
        obj = Projeto.objects.get(id=id)
        context = {
                "object": obj
        }
        return render(request, "dpo/imprimir/aprovado.html", context)

def Reprovado(request, id):
        obj = Projeto.objects.get(id=id)
        context = {
                "object": obj
        }
        return render(request, "dpo/imprimir/reprovado.html", context)

我认为我这样做的方式是错误的。

2 个答案:

答案 0 :(得分:2)

尝试

<a href="{% url 'aprovado' object.id %}">{% trans "Aprovado" %}</a>
<a href="{% url 'reprovado' object.id %}">{% trans "Não aprovado" %}

答案 1 :(得分:0)

由于对象实例名称在上下文中的名称为"object",因此您需要在模板中引用它,例如

<a href="/dpo/imprimir/aprovado/{{object.id}}">{% trans "Aprovado" %}</a>