django - 使用模板变量创建名为 URL 的 Django?

标签 django django-templates

如果需要向 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 文档中没有看到任何解决这种情况的内容(尽管我可能错过了)。

谢谢!

最佳答案

您只需将 uid 作为关键字传递即可。您可以找到它的记录 here 。因此,您的 url 调用将如下所示:

<a href="{% url 'show-members-near' uid=uid %}">Show members near you</a>

关于django - 使用模板变量创建名为 URL 的 Django?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507889/

相关文章:

django - 远程运行时,Django 的内置测试服务器有多危险?

python - Django IntegrityError 列 "author_id"中的 null 值违反了非空约束

python - Django/Python,在 Modelform 中使用单选按钮作为 bool 字段?

python - Django 1.11 get() 缺少 1 个必需的位置参数 : 'pk'

python - 使 Django Context 中的自定义变量永久化

mysql - 在 GAE 应用中更改 Cloud SQL block_encryption_mode

python - Django 中的 SortedDict

python - 图像未显示在 django 模板中

django 模板过滤器删除 html 标签

python - 为什么 logged_out.html 没有覆盖 Django 注册?