【问题标题】:Linking to the django admin site链接到 django 管理站点
【发布时间】:2010-11-04 13:36:51
【问题描述】:

非常基本的问题,但我无法在网上找到答案。我有一个模板,我想链接到 django 管理站点(即 localhost:8000/admin)。这是什么代码?

我在想象类似的东西

<a href="{% url admin.site.root %}">link to admin panel</a>

但是,当我尝试上面的 sn-p 时,我得到:

Caught an exception while rendering:
  Reverse for 'project_name.django.contrib.admin.sites.root' with
  arguments '()' and keyword arguments '{}' not found.

帮助?

【问题讨论】:

    标签: django django-admin django-templates django-urls


    【解决方案1】:

    您使用的是哪个 django 版本?如果您使用的是中继,请将您的管理员 urlpatterns 更改为:

    (r'^admin/(.*)', admin.site.root)
    

    到:

    ('^admin/', include(admin.site.urls))
    

    然后您会得到一个名为“admin_index”的命名 URL 模式,您可以参考它。见

    http://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

    更多信息

    【讨论】:

    • 网址名称是'admin:index'
    【解决方案2】:

    尝试 Oggy 的建议,然后在当前 Django 中使用 ':' 而不是 '_':

    <a href="{% url 'admin:index' %}">link to admin panel</a>
    

    【讨论】:

    • 这对我有用。在 Django 1.3 中,使用 admin_index 给了我一个 TemplateSyntaxErrorCaught NoReverseMatch while rendering: Reverse for 'admin_index' with arguments '()' and keyword arguments '{}' not found. 使用 admin:index 而不是提供了一个有效的管理站点 URL。
    • 对于从 Google 来到这里的任何人,Django 1.5+ 它是 {% url "admin:index" %},带引号
    • 如果您想链接到管理站点的子页面,请参阅this answer
    • 'admin:index' 有什么作用以及为什么要以不同的方式处理其他 url 路径(不使用 ":" )?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    相关资源
    最近更新 更多