Nie można zalogować się na stronie administratora django z prawidłową nazwą użytkownika i hasłem

Nie mogę się zalogować do strony administracyjnej django. Po wprowadzeniu prawidłowej nazwy użytkownika i hasła ponownie wyświetla się strona logowania, bez komunikatów o błędach

To pytanie jest wdjango FAQ, ale przejrzałem tam odpowiedzi i nadal nie mogę przejść przez początkowy ekran logowania.

Używam django 1.4 na ubuntu 12.04 z apache2 i modwsgi.

Potwierdziłem, że rejestruję administratora wadmin.py plik, upewnij się, że syncdb po dodaniuINSTALLED_APPS. Kiedy wprowadzę złe hasło IROBIĆ otrzymasz błąd, więc mój administrator jest uwierzytelniany, po prostu nie przechodzę do strony administracyjnej.

Próbowałem obu ustawieńSESSION_COOKIE_DOMAIN do IP urządzenia i None. (Potwierdzono, że domena cookie pokazuje jako adres IP komputera w chrome)

Sprawdzono również, czy użytkownik uwierzytelnia się za pośrednictwem powłoki:

>>> from django.contrib.auth import authenticate
>>> u = authenticate(username="user", password="pass")
>>> u.is_staff
True
>>> u.is_superuser
True
>>> u.is_active 
True

Próba zalogowania za pomocą IE8 i chrome canary, oba skutkują tym samym powrotem do ekranu logowania.

Czy czegoś jeszcze brakuje?

settings.py

...
MIDDLEWARE_CLASSES = (
    'django.middleware.gzip.GZipMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.transaction.TransactionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',    
    'django.contrib.staticfiles',
    'django.contrib.gis',
    'myapp.main',
)

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 86400 # sec
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_NAME = 'DSESSIONID'
SESSION_COOKIE_SECURE = False

urls.py

from django.conf.urls.defaults import * #@UnusedWildImport
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^bin/', include('myproject.main.urls')),    
    (r'^layer/r(?P<layer_id>\d+)/

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.get_result_layer"), (r'^layer/b(?P<layer_id>\d+)/

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.get_baseline_layer"), (r'^layer/c(?P<layer_id>\d+)/

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.get_candidate_layer"), (r'^layers/

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.get_layer_definitions"), (r'^js/mapui.js

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.view_mapjs"), (r'^tilestache/config/

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.get_tilestache_cfg"), (r'^admin/', include(admin.site.urls)), (r'^sites/', include("myproject.sites.urls")), (r'^

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

, "myproject.layer.views.view_map"), ) urlpatterns += staticfiles_urlpatterns()

Wersja Apache:

Apache/2.2.22 (Ubuntu) mod_wsgi/3.3 Python/2.7.3 configured

Apache apache2 / sites-available / default:

<VirtualHost *:80>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess lbs processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup lbs
        WSGIScriptAlias / /var/www/bin/apache/django.wsgi
        Alias /static /var/www/lbs/static/
</VirtualHost>
<VirtualHost *:8080>
        ServerAdmin ironman@localhost
        DocumentRoot /var/www/bin
        LogLevel warn
        WSGIDaemonProcess tilestache processes=2 maximum-requests=500 threads=1
        WSGIProcessGroup tilestache
        WSGIScriptAlias / /var/www/bin/tileserver/tilestache.wsgi
</VirtualHost>

AKTUALIZACJA

Strona administracyjna postępuje podczas korzystania z serwera deweloperskiego przezrunserver więc wydaje się, że jest to problem wsgi / apache. Wciąż jeszcze tego nie zrozumiałem.

ROZWIĄZANIE

Problem polegał na tym, że miałem plik ustawieńSESSION_ENGINE wartość ustawiona na'django.contrib.sessions.backends.cache' bez miećCACHE_BACKEND prawidłowo skonfigurowany.

Zmieniłem SESSION_ENGINE na'django.contrib.sessions.backends.db' który rozwiązał problem.

questionAnswers(16)

yourAnswerToTheQuestion