【发布时间】:2015-02-14 22:57:22
【问题描述】:
如果需要传递模板变量,如何在 Django 中指定命名 URL 模式?我的模板包含以下 URL:
# templates/welcome.html
# Link to template that shows all members near member with this uid
<a href="{% url 'show-members-near' %}uid={{ uid }}">Show members near you</a>
我的顶级 URLconf 文件包含以下模式 到特定于应用程序的 url 文件:
# conf/urls.py
urlpatterns = patterns('',
...
url(r'^members/', include('apps.members.urls')),
...
)
这是我的应用程序特定的 url 文件:
# app/members/url.py
url(r'^near/(?P<uid>\d{1,})/$',
'show_members',
{'template': 'show_members.html'},
name='show-members-near'),
这是我得到的错误:
NoReverseMatch at /personal_profile/welcome/
Reverse for 'show-members-near' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['members/near/(?P<uid>\\d{1})/$']
我尝试插入这样的关键字参数,但没有成功:
<a href="{% url 'show-members-near' uid={{ uid }} %}">Show members near you</a>
在做了一些研究之后,我读到的所有内容似乎都表明应该按照我上面的方式传递关键字参数。我正在尝试做的是相当于确实工作的以下内容:
<a href="/members/near/{{ uid }}/">See who's here</a>
如何指定关键字参数?我在 Django 文档中没有看到任何解决这种情况的内容(尽管我可能错过了)。
谢谢!
【问题讨论】: