У меня есть следующий код:Джанго: аутентификации пользователя
# создание пользователя:
def create_user(request):
if request.method == 'POST':
user_info = forms.UserInfoForm(request.POST)
if user_info.is_valid():
cleaned_info = user_info.cleaned_data
User.objects.create_user(username=cleaned_info['username'], password=cleaned_info['password'])
render(.......)
Это работает. Я могу проверить auth_user, и я вижу имя пользователя и пароль вместе со всеми другими созданными и добавленными полями.
Теперь я пытаюсь выполнить аутентификацию пользователя со следующим кодом после создания пользователя с username = 'testcase' и password = 'test': с использованием вышеуказанного кода.
# Аутентифицировать Пользователь
def get_entry(request):
if request.method == 'POST':
user = authenticate(username='testcase', password='test')
if user:
.........
Пользователь всегда возвращается, как никто. Что происходит? Я запускаю django 1.10.2.
Update:
Я могу видеть созданные пользователем функцией CREATE_USER, когда я войти администратора. Статус не был персоналом (как и предполагалось). Я изменил это на персонал, чтобы узнать, вызывает ли это проблему, но метод get_entry не дает никому для пользователя. Это расстраивает. Я не знаю, что я делаю неправильно.
Я этого не делаю. Я думал, что метод create_user() позаботится об этом на фоне. И поскольку я мог видеть пользователя, созданного в auth_users, он сохраняется. Я не знаю, есть ли что-то еще, что метод .save() делает на фоне. –
Вместо теста попробуйте вставить хешированный пароль, сохраненный в атрибуте пароля таблицы auth_user. –
аутентифицировать автоматически хэширует пароль, прежде чем он сделает какое-либо сравнение. Я не думаю, что хеширование необходимо. –