2011-01-26 19 views
8

Nie mogę zalogować się do administratora Django z żadnym z utworzonych przeze mnie superusers. Próbowałem tworzyć nowych superużytkowników, zmieniać hasła, itd. - brak komunikatów o błędach dla któregokolwiek z tych procesów, ale nadal nie mogę się zalogować.Nie można się zalogować do administratora Django

Nie jestem pewien, czy jest to powiązane, ale nie mogę również uruchomić django- Komendy admin.py. Oto co zrobiłem do tej pory:

$ django-admin.py validate 
Error: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 
$ export DJANGO_SETTINGS_MODULE=mysite.settings 
$ django-admin.py validate 
Error: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings 

sys.path pokazy [ '/ Users/joerobinson/Miejsca/django/mysite' ... (inne rzeczy na ścieżce)]

Czy istnieje coś jeszcze muszę zrobić, aby zarejestrować moduł mysite?

Python manage.py runserver działa dobrze.

Wnioski
Na pytanie o zalogowaniu się do django admina, nie mam django.contrib.auth.backends.ModelBackend zawarte w moich AUTHENTICATION_BACKENDS - dodawanie to pozwoliło mi się zalogować do administratora.

Nadal pracuję nad pytaniem konfiguracyjnym django-admin.py (które wydaje się nie być powiązane) i ponownie go otworzy w osobnym pytaniu.

+0

Użytkownicy muszą być członkami personelu, aby zalogować się do administratora. set is_staff = True dla tych użytkowników. – Evgeny

+0

is_staff został ustawiony odpowiednio ... ten sam problem. – Joe

+0

'django-admin.py' nie służy do uruchamiania poleceń specyficznych dla projektu, takich jak' validate'. Użyj do tego 'manage.py'. –

Odpowiedz

7

Cóż, aby odpowiedzieć na jedno z pytań, folder macierzysty mysite jest tym, co musi być na ścieżce python. Dodanie samej mysite do ścieżki pythona spowoduje wyświetlenie zawartości dla pythona w postaci mysite, a nie modułu mysite.

Jeśli chodzi o działanie/hasła runserver, nie mam pojęcia. Czy dostosowałeś coś z uwierzytelnianiem?

Czy możesz uruchomić powłokę i spróbować uwierzytelnić się u swojego superużytkownika? http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.authenticate

Powiedziałeś w komentarzu, że "is_staff został ustawiony odpowiednio ... ten sam problem." - czy to oznacza, że ​​byłeś w stanie zalogować się z pierwszym superużytkownikiem, aby ustawić is_staff?

+0

Dzięki za wskazanie mi linku, Yuji. Mam rzeczywiście bardzo dziwne zachowanie: nie mogę uwierzytelnić użytkownika w powłoce (authenticate() zwraca None). Jeśli pobierze użytkownika administratora przez api (admin_user = User.objects.get (username = 'joe')), mogę sprawdzić hasło przy pomocy admin_user.check_password ('mypwd') i sprawdzić, czy mam poprawne hasło. Każdy pomysł, dlaczego funkcja authenticate() nie będzie działała, jeśli funkcja check_password() będzie działać? Dzięki za odkrycie trochę więcej tej tajemnicy. – Joe

+1

To całkowicie szalone! Do czego jest ustawiona opcja AUTHENTICATION_BACKENDS? Domyślny 'ModelBackend' w' django.contrib.auth.backends' robi dokładnie to, co zrobiłeś: 'user.check_password ('pwd')'. Wiesz, mogę tymczasowo wprowadzić jakiś kod debugowania w funkcji uwierzytelniania django, aby zobaczyć, co robi, kiedy przechodzi przez twoje backendi auth. –

+3

Proszę pana, właśnie zrobiłem mój dzień. Po prostu wiedziałem, że to głupie miejsce z mojej strony - nie miałem domyślnego ustawienia. Dziękuję dziękuję!! – Joe

5

Wpadłem na problem z similair, ale nie mogłem zalogować się do interfejsu administratora nawet po usunięciu bazy danych i utworzeniu jej od podstaw. Problem spowodowany był prawdziwym głupim błędem.

Nie uruchamiaj python manage.py testserver przez przypadek. Upewnij się, że używasz python manage.py runserver.

7

W moim przypadku miałem "SESSION_COOKIE_SECURE = True", ponieważ próbowałem konfiguracji SSL. Po prostu komentowanie tej linii działało.

+0

WOW ten błąd ("funkcja") jest tak okrutny, jeśli testujesz konfiguracje produkcyjne. Tak było. Dzięki za rozwiązanie. Zajęło mi godziny, aby dowiedzieć się, dlaczego nie mogę zalogować się do administratora. – Ivandir

Powiązane problemy