Подтвердить что ты не робот

Не удается войти в интерфейс Django/admin

Прежде всего, я новичок. Я запускаю Ubuntu 11.04, который поставляется с Python 2.7, поэтому я установил Python2.5 в другой каталог, чтобы запустить Django-Non-Rel в Google App Engine. Я сделал учебник гостевой книги, и теперь я пытаюсь добавить доступ администратора, но когда я ввожу правильное имя пользователя: пароль Django считает его неправильным. Он даже не работает при развертывании в GAE. Если вы знаете, пожалуйста, соберите меня в правильном направлении.

Я добавил:

AUTHENTICATION_BACKENDS = ( 
    'django.contrib.auth.backends.ModelBackend', 
)

INSTALLED_APPS = (
    ...
    'django.contrib.admin',
    ....
)

ИЗМЕНИТЬ
Я также добавил

url (r '^ admin/', include (admin.site.urls)),

в urls.py в каталоге подпроекта.
EOEDIT

Затем я создал суперпользователь и синхронизированные базы данных:

> python2.5 xxx-xxx-guestbook/manage.py createsuperuser python2.5
> xxx-xxx-guestbook/manage.py syncdb

Затем запустило приложение и не может войти в систему. Я создал несколько разных суперпользователей всегда с одинаковым результатом.

EDIT2

Спасибо всем за помощь, но, к сожалению, ни одно из предлагаемых решений не решило проблему. Я решил сначала изучить Django самостоятельно, а затем, возможно, переключиться на GAE Django-нереле, поэтому вопрос уже не имеет значения. Должен ли я по-прежнему выбирать один ответ, чтобы дать кому-то несколько баллов?

4b9b3361

Ответ 1

Не слишком уверен в этом, но syncdb может удалить суперпользователя, который вы только что создали. Попробуйте создать суперпользователя, когда вам будет предложено синхронизировать.

В противном случае ознакомьтесь с моделью пользователя в ./manage.py shell. Проверьте User.objects.all()[0].is_superuser.

Ответ 2

В django-нереле есть какое-то ограничение.

Чтобы создать суперпользователя:

  • Остановить локальный веб-сервер
  • Создайте суперпользователя

    python manage.py createsuperuser
    
  • Запустите веб-сервер снова

    python manage.py runserver
    

Ответ 3

Предполагая, что у вас есть правильное имя пользователя и пароль, единственное, что будет представлять собой то же поведение, что и неудачный вход, имеет is_staff=False для данного пользователя.

Зайдите в свою базу данных и просмотрите таблицу auth_user. Убедитесь, что для параметра is_staff установлено значение TRUE для пользователя, которого вы используете для входа.

Ответ 4

В urls.py uncomment:

# Uncomment the next line to enable the admin:
**# url(r'^admin/', include(admin.site.urls)),**

и это должно сделать вас полезными для рас:)

PS. не забудьте запустить. /manage.py syncdb, и он попросит настроить пользователя admin.

Ответ 5

Если вы идиот, как и я, вы можете попытаться войти в систему со своей электронной почтой, а не с вашим именем пользователя.

Я думаю, что я делал это, потому что при создании суперпользователя я вспомнил, что я ввел электронное письмо, а не имя пользователя (потому что django предлагает вам имя пользователя, не набирая его), и, возможно, обычное соглашение об использовании электронных писем для имен пользователей.. Man Я чувствую себя глупым ха-ха.

Ответ 6

Я встретил ту же ситуацию, что и вы. И я обнаружил, что переключил сервер аутентификации на

someproject.backends.EmailCheckmodelBackend

И в settings.py я добавил строку:

AUTHENTICATION_BACKENDS = ('someproject.backends.EmailCheckModelBackend',)

И бэкэнд выглядит так:

class EmailCheckModelBackend(ModelBackend):
def authenticate(self, username = None, password = None, is_staff = None):
    try:
        user = User.objects.get(email = username)
        if user.check_password(password):
            if is_staff is not None:
                if user.is_staff == is_staff:
                    return user
                else:
                    return None
            return user

    except User.DoesNotExist:
        return None

Вы обнаружите, что имя пользователя принудительно заменяется на "email". Поэтому вам нужно зайти на свою страницу с учетной записью электронной почты. Если нравится

Имя пользователя: [email protected]

пароль: пароль

Тогда он работает. Надеюсь, что это полезно для всех.

Ответ 7

У меня была такая же проблема, и я не мог понять, почему я не смог войти, потому что все настройки были правильными. Тем не менее, я проследил его до Django, предлагая мне имя суперпользователя, содержащее начальную заглавную букву, но фактически сохраняя это имя как полностью строчное!

Я, естественно, использовал имя суперпользователя с capitals (как было предложено Django), и аутентификация завершилась неудачно. При проверке таблиц данных для проверки "is_staff" и т.д. Я обнаружил ошибку. Я знаю, что не ошибся, потому что пару раз повторял процесс установки и отмечал учетные данные суперпользователя, чтобы быть уверенными в деталях, подобных делу.

Итак, моральная осторожность при принятии имени по умолчанию, предлагаемого Django! Это!

Ответ 8

Это не так сложно исправить. Прежде всего, убедитесь, что вы используете свои настройки по умолчанию

(DEBUG=TRUE,ALLOWED_HOST=[ ])

в файле настроек вашей папки веб-сайта.

Войдите в папку своего сайта (используя командную строку) и введите следующую команду:

$ python manage.py createsuperuser
name:
email:e.g [email protected]
password:

Вернитесь в браузер и запустите сервер. Задайте имя пользователя (а не адрес электронной почты) вместе с вашим паролем, который вы создали ранее. На этот раз он отлично справится.