django admin显示所有应用程序,模型,但管理模型页面返回404

时间:2011-10-17 16:32:38

标签: django django-admin

这些网址有效:

/admin
/admin/appname

但这不适用于任何模型,包括用户,群组或网站:

/admin/appname/modelname

例如,/admin/auth有效并显示GroupsUsers模型,但如果我点击任一模型,导航到admin/auth/user,我会收到404发现错误。

我首先假设它可能是urls.py中的一个问题,所以除了管理员之外我还注释掉了所有内容。它没有任何区别。这是我的urls.py文件:

from django.conf.urls.defaults import *
from django.contrib import admin

urlpatterns = patterns('',
    # main admin
    (r'^admin/', include(admin.site.urls)),
)
admin.autodiscover()

以下是我在[{1}}中安装的应用:

settings.py

我当然已经尝试关闭服务器,运行INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'south', ) (以及为使用南方的应用运行南迁移),然后再次使用syncdb。没有区别。

我还尝试卸载并重新安装django(相同版本,1.3)。

  

Django按以下顺序尝试了这些URL模式:

     
      
  1. runserver
  2.   
  3. ^admin/ ^$ [name='index']
  4.   
  5. ^admin/ ^logout/$ [name='logout']
  6.   
  7. ^admin/ ^password_change/$ [name='password_change']
  8.   
  9. ^admin/ ^password_change/done/$ [name='password_change_done']
  10.   
  11. ^admin/ ^jsi18n/$ [name='jsi18n']
  12.   
  13. ^admin/ ^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$
  14.         

    当前网址^admin/ ^(?P<app_label>\w+)/$ [name='app_list']与其中任何网址都不匹配。

1 个答案:

答案 0 :(得分:4)

正如我在评论中提到的,您显然需要在之前使用admin.autodiscover()将其包含在urlpatterns元组中。

这似乎是因为计算每个应用程序/模型的网址的代码 - admin.sites.AdminSite.get_urls - 取决于在运行之前已经为管理员注册的模型。如果没有,则不会创建相关的URL。