0

这是我的设置。我在 Dreamhost 上使用 Django 版本 1.1.1,Python 2.4。我遇到的问题是,每当我创建一个简单的应用程序并启用 admin.autodiscover() 时,Django 都会抛出异常。我的设置:

from django.conf.urls.defaults import *
from testapp.views import HelloWorld

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^HelloWorld/$', HelloWorld),

    # 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/', include(admin.site.urls)),
)

我的 settings.py 看起来像:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.admindocs',
'testapp',
)

我的 testapp.views 看起来像:

from django.http import HttpResponse

def HelloWorld(request):
    return HttpResponse("Hello world")

如果我注释掉 admin.autodiscover() 我可以看到我对 HelloWorld 的看法。如果我启用 admin.autodiscover() Django 会抛出一个我无法捕获的异常。

有谁知道为什么会发生这种情况以及我能做些什么来解决它?

4

3 回答 3

4

当我重命名应用程序时,我遇到了类似的问题。admin.autodiscover()基本上,如果您已经启动了应用程序并在文件中使用了管理员urls.py,它将导致admin.pyc在您的应用程序文件夹中创建一个文件。删除此admin.pyc文件并再次运行服务器......瞧!

于 2012-07-23T00:10:57.710 回答
1

我猜 testapp/admin.py 不会导入您正在为其创建管理员的 models.Model 类。尝试以下操作:

./manage.py shell # you may immediately get a stack trace
>> import testapp.admin # I'll bet it blows up.
于 2009-12-21T18:18:07.547 回答
0

老问题,但仍然相关。我今天遇到了类似的问题。问题是我已将 Django 应用程序文件夹 ( lib/cache) 中目录中的一组文件重构为单个文件 ( lib/cache.py)。因为目录中还有一个__init__.pycachePython 将空目录视为一个模块并阻止访问cache.py.

admin.autodiscover()在我的评论中发表评论urls.py使追踪这一点更容易一些,但仍然需要一些猜测。

于 2016-07-07T06:02:29.970 回答