Я хочу создать целевую страницу, похожую на страницу с мышью, где она имеет форму регистрации и форму входа на панели навигации.В настоящее время я использую одну форму как для регистрации, так и для входа в forms.py:
forms.py
class UserRegisterForm(UserCreationForm):
firstname = forms.CharField(max_length=200, label='')
lastname = forms.CharField(max_length=200, label='')
email = forms.EmailField(label='')
class Meta:
model = User
fields = ['username', 'firstname', 'lastname', 'email', 'password1']
Мой шаблон включает 2 {{ form }}
s, и каждый из них имеет отправкукнопка.
кнопка для регистрации {{ form }}
:
name='signupbtn' type='submit'
кнопка для входа {{ form }}
:
name='loginbtn' type='submit'
Теперь у меня возникли проблемы при попытке войтиили аутентифицировать пользователя, которого я создал (который является суперпользователем).Мое представление регистрации / входа выглядит следующим образом:
def index(request):
if request.method == 'POST':
if 'signupbtn' in request.POST:
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Your account has been created! You may now login.')
return redirect('index')
elif 'loginbtn' in request.POST:
username = request.POST['username']
password = request.POST['password1']
form = UserRegisterForm(request.POST)
if form.is_valid():
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
form = UserRegisterForm()
return render(request, 'users/index.html', {'form': form})
Возможно ли, что мне нужно создать 2 формы в моем forms.py?Когда я пытаюсь войти, он не проходит form.is_valid()
в elif 'loginbtn' in request.POST:
.Также обе формы имеют {% csrf_token %}
.