Django - Содержать оба представления регистрации и входа на одной странице
Я создаю простое приложение на Django, где мои пользователи могут регистрироваться и входить в свои аккаунты.
У меня на главной странице есть форма регистрации и форма входа, но она не работает для входа или регистрации: форма не позволяет пользователю создать аккаунт или войти в уже существующий аккаунт.
Моя регистрационная форма:
<form action = "" method = "POST">
{% csrf_token %}
<input type="email" placeholder="Email" name = "email" />
<input type="text" placeholder="Username" name = "username" />
<input type="password" placeholder="Password" name = "password" />
<button type = "submit" name = "register">Register</button>
</form>
Моя форма входа:
<form action = "" method = "POST">
{% csrf_token %}
<input type="text" placeholder="Username" name = "username" />
<input type="password" placeholder="Password" name = "password" />
<button type = "submit" name = "login">Log In</button>
</form>
И наконец, мой взгляд (я взял за основу [это] (How can i Register and Login In The Same Page in Django? решение, но оно не работает):
def home(request):
if "register" in request.method == "POST":
if request.method == "POST":
email = request.POST.get('email')
username = request.POST.get('username')
password = request.POST.get('password')
newuser = User.objects.create_user(username = username, email = email, password = password, )
newuser.save()
user = authenticate(request, username=username, password=password)
if "login" in request.method == "POST":
if request.user.is_authenticated:
return HttpResponseRedirect("/levels/1") # redirect 2 dashboard
else:
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return HttpResponseRedirect("/levels/1") #also redirect to dashboard
else:
print("error")
return render(request, 'home.html', )
Может ли кто-нибудь помочь мне? Я хочу, чтобы у меня была форма для входа и регистрации на одном экране
Я основываю свой код на этом: Как я могу зарегистрироваться и войти на одной и той же странице в Django?
Но это не работает
Я бы предложил вам попробовать использовать разные имена для каждого входа, в вашем коде вы использовали одинаковые имена, и я думаю, что они конфликтуют друг с другом!!!