У меня есть пользовательская модель пользователя (MyUser) и регистрирующая форма (UserCreationForm) для этой модели. После регистрации пользователя я хочу, чтобы он перенаправлялся на домашнюю страницу. Однако он перенаправляется на главную страницу, но проблема заключается в том, что user
не регистрируется даже после того, как функция login()
используется в представлении регистра, и поэтому она перенаправляется обратно на страницу входа.Переадресовать на дом как зарегистрированный пользователь после успешной регистрации
views.py:
@login_required(login_url='/account/login/')
def home(request):
return render(request, 'home.html')
def login_view(request):
form = LoginForm(request.POST or None)
if request.POST and form.is_valid():
user = form.login(request)
if user:
login(request, user)
return redirect("/")# Redirect to a success page.
return render(request, 'login.html', {'form': form })
def register(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect("/")
else:
form = UserCreationForm()
return render(request, 'register.html', {
'form': form
})
Его дает мне ошибку:
AttributeError at /account/register/
'MyUser' object has no attribute 'backend'
Что я здесь делаю неправильно? Пожалуйста, помогите мне, как это решить. Спасибо.
Отлично! Спасибо. Не могли бы вы помочь мне понять, почему мне пришлось снова войти в систему с аутентифицированным, а не только «login (request, user)»? –
Посмотрите это, возможно, это уточнит ваши вопросы, https://docs.djangoproject.com/en/1.8/topics/auth/default/#authenticating-users –
Отлично! Огромное спасибо. –