NoRverseMatch将相对URL链接到django 1.9模板中的视图时出错

时间:2016-02-07 10:59:11

标签: python django django-templates

我在app.urls中使用了view-callables,因为我不断收到app.views.view_name被弃用的警告

app.urls
from .views import (
post_list,
post_detail,
post_create,
post_edit,
post_delete,
recent_posts,
)

urlpatterns = [
    url(r'^$', recent_posts, name='recent_posts'),
    url(r'^post/$', post_list, name="list"),
    url(r'^post/create/$', post_create, name="create"),
    url(r'^post/(?P<slug>[\w-]+)/$', post_detail, name="detail"),
    url(r'^post/(?P<slug>[\w-]+)/edit/$', post_edit, name="edit"),
    url(r'^post/delete/$', post_delete, name="delete"),

    ]

这是我的项目urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include ("blog.urls", namespace="post")),
]

这是模板:

<div class="menu-wrap">
   <nav class="menu">
       <ul>
           <li><a href="/">Home</a></li>
           <li><a href="{% url 'app.views.view_name' %}">All Posts</a></li>
           {% if user.is_authenticated %}
            <li><a href="{% url 'app.views.another_view_name' %}"> Create Post </a></li>
           {% endif %}
       </ul>
   </nav>
</div>

这是我必须使用的,但它也很糟糕,可能更糟糕

<div class="menu-wrap">
   <nav class="menu">
       <ul>
           <li><a href="/">Home</a></li>
           <li><a href="{% url 'app.views.view_name' %}">All Posts</a></li>
           {% if user.is_authenticated %}
            <li><a href="{% url 'app.views.another_view_name' %}"> Create Post </a></li>
           {% endif %}
       </ul>
   </nav>
</div>

请问有关如何在模板中向我的观点表示网址的任何想法?谢谢。

2 个答案:

答案 0 :(得分:1)

您应该使用命名空间名称,在您的情况下&#39; post&#39;然后是冒号(:)然后是view_name,例如列出所有帖子:

<li><a href="{% url 'post:list' %}">All posts</a><li>

您可以在django文档https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url

中详细了解如何处理网址

答案 1 :(得分:0)

您想使用您在name文件中声明的网址urls.py链接到相关网址。因此,您的模板可能应该如下所示:

<div class="menu-wrap">
   <nav class="menu">
       <ul>
           <li><a href="/">Home</a></li>
           <li><a href="{% url 'list' %}">All Posts</a></li>
           {% if user.is_authenticated %}
            <li><a href="{% url 'create' %}"> Create Post </a></li>
           {% endif %}
       </ul>
   </nav>
</div>