2017-05-23 111 views
2

我想通过反向链接在我的Django应用程序直接使用管理的网站,但我得到这个错误:No module named admin.site.urlsDjango管理网址

我有urls.py文件,它看起来像:

import os 
from django.conf.urls import url, include 
from django.contrib import admin 
from django.conf.urls.static import static 
from django.conf import settings 

from BirthCertificate import views 
from Identity import views 
from Accueil import views 
from log import views 
from Mairie import views 
from Table import views 
from Recensement import views 
from Configurations import views 
from Mariage import views 

import debug_toolbar 

from django.views.generic.base import TemplateView 


urlpatterns = [ 
    url(r'^$', TemplateView.as_view(template_name=os.path.join(settings.BASE_DIR, 'Accueil/templates/Choice.html')), 
     name='choice'), 
    url(r'^admin/', include('admin.site.urls')), 
    url(r'^BirthCertificate/', include('BirthCertificate.urls')), 
    url(r'^Identity/', include('Identity.urls')), 
    url(r'^Accueil/', include('Accueil.urls')), 
    url(r'^Home/', include('log.urls')), 
    url(r'^Mairie/', include('Mairie.urls')), 
    url(r'^Table/', include('Table.urls')), 
    url(r'^Recensement/', include('Recensement.urls')), 
    url(r'^Configurations/', include('Configurations.urls')), 
    url(r'^__debug__/', include(debug_toolbar.urls)), 
    url(r'^Mariage/', include('Mariage.urls')), 
] 

而且我的一个HTML模板有:

{% if request.user|has_group:"admin" %} 
    <li><a href="{% url "admin" %}" ><span class="glyphicon glyphicon-log-out"></span> Administration </a></li> 
{% endif %} 

有什么不对吗? 我找不到我如何解决这个错误..

回答

6

In Django 1.9+,你不需要使用include。使用可调用的admin.site.urls,而不是字符串'admin.site.urls'

url(r'^admin/', admin.site.urls), 

In Django < 1.9传递admin.site.urlsinclude

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

要扭转管理指数的网址,在你的模板更改URL标签:

{% url "admin:index" %} 
+0

谢谢你,但我得到这个错误:'反转为“管理员”与参数“()”和关键字参数“{}”未找到。 0模式尝试:[]'我想直接访问我的模板中的URL与Django管理页面,这有可能吗? – Deadpool

+0

这是因为'admin'只是命名空间。您还需要包含网址格式的名称,例如管理员索引的“{%url”admin:索引“%}”。 – Alasdair

+0

太好了!我不知道这个诀窍:)非常感谢你! – Deadpool