【问题标题】:Reverse for 'blog/article' not found. 'blog/article' is not a valid view function or pattern name未找到“博客/文章”的反向。 “博客/文章”不是有效的视图函数或模式名称
【发布时间】:2020-12-05 23:04:01
【问题描述】:

我目前正在我的 django 网站上做一个导航栏。但是,我在使用网址时遇到了一些问题:

我在一个名为 blogs 的新应用程序中创建了另一个 urls.py。这是代码:

在主 urls.py 中:

from django.contrib import admin
from django.urls import path, include
from translator.views import HomeView, TranslatorView

urlpatterns = [
    path('blog/', include('blog.urls')),
    path('', HomeView.as_view(), name='home'),
    path('translator/<str:phrase>/', TranslatorView.as_view(), name='translator'),
    path('translated/', TranslatorView.as_view(template_name='main/translated.html'), name='translated'),
    path('admin/', admin.site.urls),
]

在博客的urls.py中:

from django.urls import path
from .views import ArticleDetailView

app_name = 'blog'
urlpatterns = [
 path('', ArticleDetailView.as_view(), name='article' )
]

我想要做的是在导航栏中包含路径 ArticleDetailView (name='article)。所以我编码了这个:

  <nav class="navbar fixed-top navbar-expand-lg navbar-light" style='background-color: snow;'>
    <div class = 'container'>
      <a class="navbar-brand" href="#">
        <img src="{% static 'C:\Users\marcv\OneDrive\Escriptori\Translate\Scripts\src\static\images\dna_PNG48.png'%}" width="70" height="30" class="d-inline-block align-top" alt="">

      </a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarTogglerDemo01">
        <ul class="navbar-nav mx-auto">
          <li class="nav-item active">
            <a class="nav-link" href="{% url 'home' %}">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href='{% url "translator" "phrase" %}'>Translator</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="{% url 'blog/article' %}" >Blog</a> #Here's the problem
          </li>
        </ul>

      </div>
    </div>
  </nav>

但是,当我单击名为“博客”的导航栏按钮(位于模板中)时,会出现此错误:

找不到“博客/文章”的反向。 'blog/article' 不是有效的视图函数或模式名称。

我知道错误是我在导航栏中给出的 url 名称。但是,我不知道应该输入哪个名称。

【问题讨论】:

    标签: python html django


    【解决方案1】:

    名称空间 (app_name='blog') 和视图名称 article 之间的分隔符是冒号 (:),而不是斜线,所以:

    &lt;a class="nav-link" href="{% url <b>'blog:article'</b> %}" &gt;Blog&lt;/a&gt;

    【讨论】:

    • 好吧,我当然不知道。总之谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多