Как я могу создать страницу с формой одного пользователя в django 1.11?
Я пытаюсь создать страницу входа для одного пользователя. Как я могу создать этого пользователя? Могу ли я просто проверить имя пользователя и пароль в представлениях? Спасибо за помощь.
Что именно вы хотите. Пожалуйста, уточните ваш вопрос. Страница входа одного пользователя означает, что вы будете регистрировать пользователя на этой странице и также входить только с этой страницы?
Если да. Просто создайте форму регистрации, создайте в ней метод сохранения, а затем введите пользователя в систему с помощью этой функции сохранения .
Или о чем еще вы просите. Пожалуйста, расскажите подробнее ..
если я понимаю, о чем вы говорите, вам нужна простая форма регистрации пользователя и форма входа:
вы можете использовать этот:
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect(#home page url)
else:
messages.info(request, 'Invalid Credential')
return redirect('login')
else:
return render(request, 'login.html')
def register(request):
if request.method == 'POST':
username = request.POST['username']
first_name = request.POST['first_name']
last_name = request.POST['last_name']
email = request.POST['email']
password = request.POST['password']
password2 = request.POST['password2']
if password == password2:
if User.objects.filter(email=email).exists():
messages.info(request, 'Email or user name Already taking')
return redirect('register')
elif User.objects.filter(username=username).exists():
messages.info(request, 'username is taken')
return redirect('register')
else:
user = User.objects.create_user(username=username,
first_name=first_name, last_name=last_name, email=email,
password=password)
user.save();
return redirect('login')
else:
messages.info(request, 'Password Not Match')
return redirect('register')
return redirect ('/')
else:
return render(request, 'signup.html')
добавьте это в ваши шаблоны входа Я использую Bootstrap версии 5:
<form method="POST">
{% csrf_token %}
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Enter Username</label>
<input type="text" class="form-control" name="username">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Enter Password</label>
<input type="password" class="form-control" name="password">
</div>
<br>
<a href="{% url 'Rules' %}" style="text-decoration: none; font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">
Create An Account
</a>
<br>
<button type="submit" class="btn btn-primary">Login</button>
</form>
добавьте это в шаблон вашей страницы регистрации:
<form action="{% url 'register' %}" method="POST">
{% csrf_token %}
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Username</label>
<input type="text" class="form-control" name="username">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">First Name</label>
<input type="text" class="form-control" name="first_name">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Last Name</label>
<input type="text" class="form-control" name="last_name">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Enter Your Email</label>
<input type="email" class="form-control" name="email">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Password</label>
<input type="password" class="form-control" name="password">
</div>
<br>
<div class="form-group">
<label style="font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Repeat Password</label>
<input type="password" class="form-control" name="password2">
</div>
<br>
<a href="{% url 'login' %}" style="text-decoration: none; font-family: Arial, Helvetica, sans-serif; color: dodgerblue;">Already Have An Account</a>
<br>
<button type="submit" class="btn btn-primary">Create</button>
</form>