由於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_classes
,autodiscover
和django.contrib.admin
以啓用管理界面。它加載'它工作'頁面,但我得到了這個例外。當我加載localhost/admin
時,情況也是如此。同樣,在查詢User.objects.all()
後,我得到了正確的超級用戶列表,但它們在登錄頁面中不起作用。
在此先感謝。
Regards