我有 HTML 文件
<!DOCTYPE html>
<body>
{% for champion in champions %}
<a href="{% url 'guide_form' %}{{champion}}">{{champion}}</a>
{% endfor %}
</body>
</html>
这些是我的网址
urlpatterns = patterns('', url(r'^select_champion/$', views.select_champion, name='select_champion'),
url(r'^guide_form/(?P<champion>\w+)/$', views.guide_form, name='guide_form'),
url(r'^create_guide/$', views.create_guide, name='create_guide'),
url(r'^get_guide/(?P<id>\d+)/$', views.get_guide, name='get_guide'),
url(r'^guide_list/(?P<champion>\w+)/$', views.get_guide_list, name='get_guide_list'),
)
当我尝试选择冠军时,我得到以下错误:
使用参数'()'和关键字参数反转'guide_form' '{}' 未找到。尝试过1种模式: [ '引导件/ guide_form /(ΔP\ W +)/ $']
当我更改此行
时<a href="{% url 'guide_form' %}{{champion}}">{{champion}}</a>
到此
<a href="{% url 'create_guide' %}{{champion}}">{{champion}}</a>
我没有收到错误,但当然会调用错误的URL。我想选择一名冠军,并希望每个网址都能获得冠军,因此可以在指南表格中向他撰写关于他的指南。 您对如何解决我的问题有任何建议吗?
答案 0 :(得分:2)
几乎就在那里,你需要:
<a href="{% url 'guide_form' champion=champion %}">{{ champion }}</a>
您的网址格式包含关键字参数champion
,其值为模板变量{{ champion }}
。 url标记了解模板上下文,因此您不需要围绕变量{{ }}
;而是直接将其作为参数传递给url标记。
答案 1 :(得分:1)
应该是这样的
<!DOCTYPE html>
<body>
{% for champion in champions %}
<a href="{% url 'guide_form' champion %} ">{{champion}}</a>
{% endfor %}
</body>
</html>