2011-11-10 62 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來啓用管理。

之後,我可以登錄到管理界面。儘管如此,當我開始一個請求(任何請求)時,我會得到與上述相同的異常。這仍有待解決。