【问题标题】:django controlcenter url namedjango 控制中心 url 名称
【发布时间】:2021-04-07 09:19:14
【问题描述】:

在使用 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 错误。

【问题讨论】:

    标签: django django-templates django-urls


    【解决方案1】:

    您是否尝试使用此代码?:

    {% url 'admindash' %}
    

    【讨论】:

      【解决方案2】:

      对于 url 命名空间的语法应该是 <namespace>:<name>。但是您以错误的顺序使用它{% url 'dashboard:admindash' %}。应该是{% url 'admindash:dashboard' %}

      【讨论】:

        【解决方案3】:

        我想出的当前解决方案是在网址中使用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' %}
        

        【讨论】:

          猜你喜欢
          • 2021-02-16
          • 2015-03-26
          • 1970-01-01
          • 2019-07-12
          • 2011-03-11
          • 2013-08-15
          • 1970-01-01
          • 1970-01-01
          • 2014-08-16
          相关资源
          最近更新 更多