2015-09-24 2 views
-1

Я отредактировал мой вопрос со вчерашнего дня: django authenticate() allways returns None, но я думаю, что никто не обратит внимания, потому что я уже отметил вопрос, как ответил. - authenticate() работает в оболочке (вчера не работал) - на мой взгляд, я могу получить пользователя и успешно проверить его пароль Но опять же, когда я пытаюсь использовать функцию authenticate() в моем представлении , Я получаю объект типа «Нет». Я даже удалил и воссоздал базу данных, но поведение по-прежнему остается прежним. Мой settings.py:django authenticate() все еще возвращается.

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    #'django.contrib.auth.middleware.RemoteUserMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
) 

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

просмотров: от django.contrib.auth.models импорта пользователя из django.contrib.auth импорта аутентификации

def authentifizieren(request): 
    """ 
    """ 
    if request.method == 'POST': 
     uname = request.POST['username'] 
     passwd = request.POST['password'] 
     dbuser = User.objects.get(username=uname) 
     dbuvalid=dbuser.check_password(passwd) 
     auser = authenticate(username=uname, password=passwd) 
     print('***************************************', dbuser,dbuvalid) 
     print('***************************************', auser) 
    if (auser != None): 
     login(request, auser) 
    return redirect('/startseite') 

выход:

*************************************** test True 
*************************************** None 

Я также жестко закодировал строки user/password, чтобы исключить проблему, связанную с кодировкой, но без успеха. Кстати, что такое MCVE?

+0

У вас есть настройка AUTH_USER_MODEL? –

+0

Нет, но когда я искал, я понял что-то странное: Я создал новый проект для проверки проблемы в новой среде, а версия в новом файле настроек - 1,8.4 (я ожидал 1.8.2, тот Я скачал в windows), версия файла настроек в моем проекте, в котором я работаю, составляет 1.7. Я ничего не обновлял или что-то подобное. – Sascha

ответ

0

Теперь аутентифицировать() работает. Это было несоответствие версии. Теперь я помню, что я создал начальный проект дома, а на моей gentoo-машине все еще установлена ​​версия 1.7.7, а на Windows-машине на работе 1.8.4. Я думаю, что это разные настройки-файлы, глупые ошибка от меня.

Извините за неудобства

Смежные вопросы