这些网址有效:
/admin
/admin/appname
但这不适用于任何模型,包括用户、组或站点:
/admin/appname/modelname
例如,/admin/auth
工作并显示 Groups
,和Users
模型,但如果我单击任一模型,导航到 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()
这是我安装的应用程序,位于 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
,(以及为使用南部的应用程序运行南部迁移),并使用 runserver
再次。没有什么区别。
我还尝试卸载并重新安装 django(相同版本,1.3)。
Django tried these URL patterns, in this order:
^admin/ ^$ [name='index']
^admin/ ^logout/$ [name='logout']
^admin/ ^password_change/$ [name='password_change']
^admin/ ^password_change/done/$ [name='password_change_done']
^admin/ ^jsi18n/$ [name='jsi18n']
^admin/ ^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$
^admin/ ^(?P<app_label>\w+)/$ [name='app_list']
The current URL,
admin/auth/user/
, didn't match any of these.
最佳答案
正如我在评论中提到的,您显然需要 admin.autodiscover()
将其包含在 urlpatterns
中的位置之前的行元组。
这似乎是因为计算每个应用程序/模型的 url 的代码 - admin.sites.AdminSite.get_urls
- 取决于在运行之前已经为管理员注册的模型。如果不是,则不会创建相关 URL。
关于django admin显示所有应用程序、模型,但管理模型页面返回404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7796746/