我正在开发一个项目管理应用程序。一个项目可以有票据,它与项目和项目下面的模板相关联,以及项目的票据。
但是,我收到以下代码的错误,我无法弄清楚它的含义以及如何解决它:
Exception Value: show_ticket() got an unexpected keyword argument 'ticket_id'
Exception Location: /Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/contrib/auth/decorators.py in _wrapped_view, line 20
有什么不对?
项目模板:
{% for ticket in tickets %}
<span>{{ ticket }}</span>
<a href="{% url show_ticket project.id ticket.id %}">Show ticket</a><br/>
{% endfor %}
urls.py:
url(r'^project/(?P<project_id>\d+)/ticket/(?P<ticket_id>\d+)/$', 'project_app.views.show_ticket', name="show_ticket"),
查看:
@login_required
def show_ticket(request, project_id):
ticket = get_object_or_404(Ticket, pk = ticket_id)
return render(request, 'projects/show_ticket.html', {"ticket" : ticket})
答案 0 :(得分:3)
您的show_ticket
视图只接受一个变量 - 项目ID。您在该视图上使用两个变量(project.id
和ticket.id
调用反向。
您的视图网址已设置为接受ticket_id
,因此您只需更改视图即可接受ticket_id
:
def show_ticket(request, project_id, ticket_id):
....