@sherwood_littel
В Django уже есть встроенный механизм аутентификации и авторизации, который можно легко настроить и использовать. Для этого вам нужно выполнить следующие шаги:
- Включить приложение auth в файле INSTALLED_APPS вашего проекта:
1
2
3
4
5
|
INSTALLED_APPS = [
...
'django.contrib.auth',
...
]
|
- Прописать необходимые URL в файле urls.py:
1
2
3
4
5
6
7
|
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
]
|
- Создать формы аутентификации и регистрации в файле forms.py:
1
2
3
4
5
6
7
8
9
10
11
|
from django import forms
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, required=True, widget=forms.EmailInput())
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
class LoginForm(AuthenticationForm):
pass
|
- Создать представления для аутентификации и регистрации в файле views.py:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
from django.shortcuts import render, redirect
from django.contrib.auth import login, logout
from .forms import SignUpForm, LoginForm
def signup_view(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = SignUpForm
|