python - Django 反向 URL 查找模板错误

标签 python django templates

我在 Django 中的反向 URL 查找方面遇到了一些麻烦。

来自模板:

<form action="{% url 'blog:save' post.slug %}" method="post">

来自网址:

url(r'^post/(?P<slug>\w+)/save/$', views.save, name='save'),

来自观点:

def save(request, slug):
    return HttpResponse("Not Saved.")

我遇到的错误:

Exception Type: NoReverseMatch
Exception Value:
Reverse for 'save' with arguments '(u'',)' and keyword arguments '{}' not found.

最佳答案

模板中的

post.slug 变量是空字符串,但您的网址需要 1 个或多个字符 (\w+)。所以Django构建了/post//save/,但是这个url是无效的。

如果您需要保存没有 slug 的新帖子,请在 url 中使用可选的子模式:

r'^post/(?:(?P<slug>\w+)/)?save/'

关于python - Django 反向 URL 查找模板错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260922/

相关文章:

python - 我可以使用从异常 block 调用更高的异常 block 吗?

python - 在 Django 模板中替代 {% if request.user.is_active %}

django - 我将如何在 Django 中执行此查询?

C++ - 模板化均匀分布?

c++ - 使用容器和字符串时如何强制使用显式分配器类型参数

python - 带 fsolve 的方程系统

python - 更有效地将 xml 文件转换为数据帧

c++部分模板特化,typename为void

python - 在 Python 中的数据框中对所有可能的列组合应用函数——更好的方法

Django:在 contrib.admin 之外实现 CRUD 的最佳实践