【问题标题】:Django URL in template NoReverseMatch模板 NoReverseMatch 中的 Django URL
【发布时间】:2023-03-28 05:14:01
【问题描述】:

尽管我已经指定了一个命名空间并输入了正确的名称,但我在基本模板中不断收到 NoReverseMatch

错误:

未找到带有参数“()”和关键字参数“{}”的 'home' 的反向操作。尝试了 1 种模式:['forum/|^forums/$']

主要urls.py:

from django.conf.urls import url, include
from django.contrib import admin
from forum.views import main_home

urlpatterns = [
    url(r'^$', main_home, name='home'),
    url(r'^admin/', admin.site.urls),
    url(r'^accounts/|^account/', include('accounts.urls', 
    namespace='accounts')),
    url(r'^forum/|^forums/', include('forum.urls', namespace='forum')),
]

论坛网址.py:

from django.conf.urls import url

from forum import views

urlpatterns = [
    url(r'^$', views.home, name='home'),
]

来自我的模板:

<a class="nav-link" href="{% url 'forum:home' %}">Forum</a>

【问题讨论】:

    标签: django url namespaces


    【解决方案1】:

    reverse() 的文档说您不能使用 | 反转包含替代选择的 url 模式。

    在这种情况下,您可以将 URL 更改为:

    url(r'^forums?/', include('forum.urls', namespace='forum')),
    

    但是,最好选择单个 URL /forums//forum/。拥有一个 URL 对 SEO 来说会更好。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 1970-01-01
      • 2023-03-10
      • 2017-05-24
      • 1970-01-01
      • 2012-10-10
      • 2015-01-03
      • 2014-07-17
      • 2020-02-10
      相关资源
      最近更新 更多