Django Admin应用程序无法处理URL

时间:2010-08-18 13:48:33

标签: django django-urls

在我的网址文件中,我已将django管理应用程序配置为运行网址/adminDJ/。但是它没有运行。它加载我自己的管理员的东西。这是我的urls.py:

 (r'^admin/add/member/$', 'astonomyStuff.attendance.views.newMember'),
 (r'^admin/add/$', 'astonomyStuff.attendance.views.addPage'), 
(r'^admin/$', 'astonomyStuff.attendance.views.adminPage'),
 (r'^adminDJ/$', include(admin.site.urls)),
 (r'^talks/$', 'astonomyStuff.attendance.views.talksIndex'),
 (r'^talks/past/$', 'astonomyStuff.attendance.views.viewAllTalks'),
 (r'^members/$', 'astonomyStuff.attendance.views.viewMembers'),
 (r'^members/(?P<member_number>[^/]+)/$', 'astonomyStuff.attendance.views.viewMember'), 
 (r'^members/(?P<member_number>[^/]+)/delete$', 'astonomyStuff.attendance.views.deleteMember'),
 (r'^admin/add/talk/$', 'astonomyStuff.attendance.views.newTalk'),
 (r'^talks/(?P<talk_title>[^/]+)/$', 'astonomyStuff.attendance.views.viewTalk'), 
 (r'^attendance/(?P<talk_title>[^/]+)/$', 'astonomyStuff.attendance.views.viewAttendance'),  
 (r'^databrowse/(.*)', databrowse.site.root),
 (r'^adminDoc/doc/', include('django.contrib.admindocs.urls')),
 (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
 (r'^accounts/profile/$', 'astonomyStuff.attendance.views.adminPage'),
 (r'^admin/add/attendance/$', 'astonomyStuff.attendance.views.addAttendance'),
 (r'^members/(?P<member_number>[^/]+)/edit$', 'astonomyStuff.attendance.views.editMember'),
 (r'^public/talks/$', 'astonomyStuff.attendance.views.publicViewTalks')

我已经重新安排了顺序,看看这是不是问题但是没有修复它。 django管理应用程序必须在/admin/上运行吗? 在此先感谢,
迪恩

编辑:我之前已经让管理员应用程序正常工作,只是为了让你知道它只是在我玩网址时才打破。

编辑2:这是我的完整urls.py:

from django.conf.urls.defaults import *

from astonomyStuff.attendance.models import Member
from astonomyStuff.attendance.models import Non_Member
from astonomyStuff.attendance.models import Talk
from astonomyStuff.attendance.models import Event_Attendance
from django.contrib import admin
from django.contrib import databrowse


admin.autodiscover()
admin.site.register(Member)
admin.site.register(Non_Member)
admin.site.register(Talk)
admin.site.register(Event_Attendance)   
databrowse.site.register(Member)
databrowse.site.register(Non_Member)
databrowse.site.register(Talk)
databrowse.site.register(Event_Attendance)

urlpatterns = patterns('',
# Example:
# (r'^astonomyStuff/', include('astonomyStuff.foo.urls')),

# Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
 # (r'^admin/add/member/$', 'astonomyStuff.attendance.views.newMember'),
 # (r'^admin/add/$', 'astonomyStuff.attendance.views.addPage'), 
 #     (r'^admin/$', 'astonomyStuff.attendance.views.adminPage'),
 (r'^admin/$', include(admin.site.urls)),
 (r'^talks/$', 'astonomyStuff.attendance.views.talksIndex'),
 (r'^talks/past/$', 'astonomyStuff.attendance.views.viewAllTalks'),
 (r'^members/$', 'astonomyStuff.attendance.views.viewMembers'),
 (r'^members/(?P<member_number>[^/]+)/$', 'astonomyStuff.attendance.views.viewMember'), 
 (r'^members/(?P<member_number>[^/]+)/delete$', 'astonomyStuff.attendance.views.deleteMember'),
 # (r'^admin/add/talk/$', 'astonomyStuff.attendance.views.newTalk'),
 (r'^talks/(?P<talk_title>[^/]+)/$', 'astonomyStuff.attendance.views.viewTalk'), 
 (r'^attendance/(?P<talk_title>[^/]+)/$', 'astonomyStuff.attendance.views.viewAttendance'),  
 (r'^databrowse/(.*)', databrowse.site.root),
 (r'^adminDoc/doc/', include('django.contrib.admindocs.urls')),
 (r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
 (r'^accounts/profile/$', 'astonomyStuff.attendance.views.adminPage'),
 # (r'^admin/add/attendance/$', 'astonomyStuff.attendance.views.addAttendance'), 
 (r'^members/(?P<member_number>[^/]+)/edit$', 'astonomyStuff.attendance.views.editMember'),
 (r'^public/talks/$', 'astonomyStuff.attendance.views.publicViewTalks'),
)

2 个答案:

答案 0 :(得分:2)

不是(r'^adminDJ/$', include(admin.site.urls)),

但是(r'^adminDJ/', include(admin.site.urls)), ##note, no $ in the regex

记住伙计们,要检查你的正则表......

答案 1 :(得分:0)

这可能只是它引起了我的注意。从第一个片段开始:

(r'^admin/$', 'astonomyStuff.attendance.views.adminPage'), 
(r'^adminDJ/$', include(admin.site.urls)),

第二个片段:

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

这是你想要的吗?第一个代码段使用^adminDJ/$,而第二个代码段使用admin/$ include(admin.site.urls)对面。

这两个文件?两者都用过了吗?在这种情况下,第一个代码段可以很好地覆盖第二个代码段,从而导致您的管理员视图显示而不是Django。