在使用 django-controlcenter
包时,我试图在 html 模板中设置一个 url 以访问仪表板。
在我的 urlpattersn 中,我有:
path('admin/dashboard/', controlcenter.urls, name='dashboard'),
在我的设置中,我有一个仪表板:
CONTROLCENTER_DASHBOARDS = (
('admindash', 'myapp.dashboards.AdminDashboard'),
)
因此对于通常解析为 /admin/dashboard/admindash
的网址
,模板网址应该是什么? django.urls
include
不适用于包,问题是注册正确的命名空间。我直接尝试了 {% url 'dashboard:admindash' %}
和 {% url 'admindash' %}
但它返回了 NoReverseMatch 错误。
答案 0 :(得分:0)
您要使用此代码吗?:
{% url 'admindash' %}
答案 1 :(得分:0)
对于 url 命名空间语法应该是 <namespace>:<name>
。但是您以错误的顺序使用它 {% url 'dashboard:admindash' %}
。应该是 {% url 'admindash:dashboard' %}
答案 2 :(得分:0)
我提出的当前解决方案是在网址中使用 RedirectView
:
from django.views.generic.base import RedirectView
urlspattersn=[
path('admin/dashboard/', controlcenter.urls),
path('admin/dashboard/', RedirectView.as_view(url='admindash/', permanent=False), name='admindash'),
]
然后在模板中调用:
{% url 'admindash' %}