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

标签 django django-admin

这些网址有效:

/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:

  1. ^admin/ ^$ [name='index']
  2. ^admin/ ^logout/$ [name='logout']
  3. ^admin/ ^password_change/$ [name='password_change']
  4. ^admin/ ^password_change/done/$ [name='password_change_done']
  5. ^admin/ ^jsi18n/$ [name='jsi18n']
  6. ^admin/ ^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$
  7. ^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/

相关文章:

django - docker-machine 容器中缺少本地文件

django - 如何向使用 Django CreateView 创建的表单添加自定义样式

python - Django 中 socialauth 的 NoReverseMatch 错误

python - 如何覆盖 django 中内联模型的删除方法?

python - Django:如何在 list_display 中包含内联模型字段?

python - 如何按字母顺序对多对多 django-admin 框中的值进行排序?

Django Admin 反向关系

node.js - react 代理错误 : Could not proxy request/api/from localhost:3000 to http://localhost:8000 (ECONNREFUSED)

python - Django Admin - 通过模型过滤 ManyToManyField

Mysql 匹配选项 : exact phrase along with extra word