Django 2.0和decorator_包括反向url的问题

2024-05-15 22:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的项目中使用django 2.0.7django-decorator-include应用程序(版本2.0)。在

我的网址.py公司名称:

from django.conf import settings
from django.contrib import admin
from django.urls import path, re_path, include
from django.conf.urls.static import static

from django.conf.urls.i18n import i18n_patterns
from django.contrib.auth.decorators import login_required
from decorator_include import decorator_include


urlpatterns = i18n_patterns(
    path('', include('web.urls', namespace='web')),
    path('backoffice/', decorator_include([login_required,], 'backoffice.urls', namespace='backoffice')),

) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的backoffice.urls

^{pr2}$

backoffice被添加到已安装的应用程序中。在

在我的视图中(例如在appweb中),我可以做反向URL,例如在我的登录视图中我可以做return redirect('backoffice:dashboard'),而且它工作得非常好——它重定向到/backoffice/。在

问题是当我试图在我的模板反向url。在我的一个模板中,当我添加代码时:

<li class="featured"><a href="{% url 'backoffice:dashboard' %}">{% trans 'Open dashboard' %}</a></li>

我得到django错误:

NoReverseMatch at /
'backoffice' is not a registered namespace

我想这个问题与django decorator include有关,因为如果我将include更改为标准的django url include:

path('backoffice/', include('backoffice.urls', namespace='backoffice')),

它工作得很好,我可以得到反向网址在模板再次。 我该怎么办?可能是django decorator include中的一个bug?有什么办法吗?在


Tags: pathdjangofromimport模板settingsincludeconf