Помогите сделать авторизацию на сайте

124
02 февраля 2021, 03:20

я сделал регистрацию а как сделать заход на сайт то есть login in не понимаю помогите плиз

views.py

from django.views.decorators.csrf import csrf_protect
from .forms import RegisterForm
from django.shortcuts import render, redirect
from django.contrib.auth import login, authenticate

@csrf_protect
def register(request):
    if request.method == 'POST':
        form = RegisterForm(request.POST)
        username = request.POST['username']
        password1 = request.POST['password1']
        password2 = request.POST['password2']
        email = request.POST['email']
        context = {'form': form,
                   'username': username,
                   'password1': password1,
                   'password2': password2,
                   'email': email}
        if form.is_valid():
            form.save()
            user = authenticate(username=username, password=password1)
            login(request, user)
            return redirect('/')
    else:
        form = RegisterForm()
        context = {'form': form}
    return render(request, 'registration/registred.html', context)

forms.py

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms

class RegisterForm(UserCreationForm):
    email = forms.EmailField(required=True)
    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')
    def clean_email(self):
        email = self.cleaned_data['email'].strip()
        if User.objects.filter(email__iexact=email).exists():
            raise forms.ValidationError('Пользователь с таким email уже существует')
        return email

urls.py

urlpatterns =[
    path('register', views.register, name='register'),
]

registred.html

{% extends "ShapeHtml/wrapper.html" %}
{% block content %}
<form method="post" action="{% url 'register' %}">
  {% csrf_token %}
 <h3>Введите Логин</h3> <input type="text" name="username" value="{{ username }}"> <br>
 <h3>Введите Почту</h3> <input type="email" name="email" value="{{ email }}"> <br>
 <h3>Введите Пороль</h3> <input type="password" name="password1" value="{{ password1 }}"> <br>
  <h3>Повторите пороль</h3><input type="password" name="password2" value="{{ password2 }}"> <br>
  <input type="submit">
</form>
{% endblock %}
Answer 1

Вот рабочий пример:

urls.py:

from django.contrib.auth.views import LoginView
...

urlpatterns = [
    path(r'login/', LoginView.as_view(template_name='myapp/login.html'), name='login'),
    ...
]

login.html:

...
<form method="post" action="{% url 'login' %}">
    {% csrf_token %}
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit">
</form>
...

Примечание: данный код не идеален, это учебный пример. После понятия принципа, рекомендую Вам переписать его. Как минимум, советую использовать формы Django

READ ALSO
Динамическая загрузка javascript кода

Динамическая загрузка javascript кода

В html имеем следующий код:

140
помогите исправить код пожалуйста [закрыт]

помогите исправить код пожалуйста [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

128
Вращающееся меню навигации?

Вращающееся меню навигации?

Товарищи, подскажите! Куда копать, возможно ли это вообще - как реализовать такой круг в html, чтобы при клике на конкретное меню - оно вращалось...

126