2011-11-10 58 views
1

由于many人,我无法登录到Django(Nonrel)管理界面,而其他用户给出的解决方案在我的情况下不起作用。我正在运行Python 2.7和Google App Engine 1.6.0。无法登录到Django Nonrel的管理界面

让我们来看看。我有这个在我的urls.py:

from django.contrib import admin 
admin.autodiscover() 
urlpatterns = patterns('', 
    (r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'home.html'}), 
    url(r'^admin/', include(admin.site.urls)), 
) 

而这settings.py

MIDDLEWARE_CLASSES = (
    'mediagenerator.middleware.MediaMiddleware', 
    # This loads the index definitions, so it has to come first 
    'autoload.middleware.AutoloadMiddleware', 
    # Media middleware has to come first 

    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
) 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.contenttypes', 
    'django.contrib.auth', 
    'django.contrib.sessions', 
    'djangotoolbox', 
    'autoload', 
    'dbindexer', 
    'mediagenerator', 

    # djangoappengine should come last, so it can override a few manage.py commands 
    'djangoappengine', 
) 

我在取消“django.contrib.admin”之后创建一个超级用户,但它不工作。我手动创建了另一个超级用户(通过python manage.py createsuperuser),这也不起作用。然而,奇怪的是那些超级用户可用:

python manage.py shell 
>>> from django.contrib.auth.models import User 
>>> User.objects.all() 
[<User: robert>, <User: john>] 
>>> User.objects.all()[0].is_staff 
True 
>>> User.objects.all()[0].is_superuser 
True 

但是,我无法登录。

,如果是相关的,我不知道,但是当执行python manage.py runserver命令,我得到以下异常:

Exception happened during processing of request from ('127.0.0.1', 55568) 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/SocketServer.py", line 284, in _handle_request_noblock 
    self.process_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 2438, in __init__ 
    BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs) 
    File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__ 
    self.finish() 
    File "/usr/lib/python2.7/SocketServer.py", line 694, in finish 
    self.wfile.flush() 
    File "/usr/lib/python2.7/socket.py", line 303, in flush 
    self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 

有什么建议?

顺便说一句,我已经创建了超级用户而无需运行服务器,正如David Poblador在此question中所建议的那样。

UPDATE:我试着部署(python manage.py deploy),但它发生的情况完全一样。我无法用任何超级用户登录,但除此之外,没有任何错误。

UPDATE 2:我读了一个建议查看/ _ah/admin的线程,但我不确定该做什么。我有auth_user,_AhAdminXsrfToken,django_session和数据存储查看器中“实体种类”字段中的几个“表”。当我选择auth_user时,我收到以下消息:“数据存储不包含类型实体”auth_user“在空名称空间中”。

UPDATE 3:好的,现在我正式混淆了。我使用django-testapp创建了另一个项目,仅添加了middleware_classesautodiscoverdjango.contrib.admin以启用管理界面。它加载'它工作'页面,但我得到了这个例外。当我加载localhost/admin时,情况也是如此。同样,在查询User.objects.all()后,我得到了正确的超级用户列表,但它们在登录页面中不起作用。

在此先感谢。

Regards

回答

0

好的。我部分解决了这个问题。

我再次从djangoappengine下载了每个文件,但是,这次我使用的是克隆链接,而不是直接zip文件(具有/get/tip.zip的文件)。我修改了settings.py和urls.py来启用管理。

之后,我可以登录到管理界面。尽管如此,当我开始一个请求(任何请求)时,我会得到与上述相同的异常。这仍有待解决。