Проблемы с аутентификацией пользователей Django
Здравствуйте сообщество, я новичок в Django. Изучаю и создаю свой первый проект. Я пытаюсь сделать приложение для аутентификации пользователей, я создаю модель Customer, которая связана с Django default User Model, но к сожалению, когда я утверждаю форму регистрации, она создает модель Customer и модель User отдельно, и пользователь может использовать мое веб-приложение только после того, как я проверю его профиль в панели администратора. Есть ли способ автоматизировать этот процесс? Он не вызывает ошибок, но делать это вручную каждый раз - безумие. Буду благодарен за помощь ...
Вот мой authentication.views
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render, redirect
from django.contrib.auth.models import User
from django.contrib import messages
from utils import cookieCart
from django.conf import settings
from django.core.mail import send_mail
# Create your views here.
def auth_home(request):
if request.method == 'POST':
username = request.POST['username']
first_name = request.POST['first_name']
last_name = request.POST['second_name']
mobile_number = request.POST['mobile']
email = request.POST['email']
city = request.POST['city']
pass1 = request.POST['password1']
pass2 = request.POST['password2']
my_user = User.objects.create_user(username, email, pass1)
my_user.username = username
my_user.email = email
my_user.first_name = first_name
my_user.last_name = last_name
my_user.confirmed_password = pass2
my_user.city_from = city
my_user.mobile_number = mobile_number
my_user.save()
return redirect('auth_home_sign_in')
return render(request, 'main/signup.html', {})
def auth_home_sign_in(request):
if request.method == 'POST':
username = request.POST['username']
pass1 = request.POST['password1']
user = authenticate(username=username, password=pass1)
username = user.username
if user is not None:
login(request, user)
messages.success(request, "Данные введены верно")
return render(request, 'main/index.html', {'username': username})
else:
messages.error(request, "Не верно введен email или пароль")
return redirect('home')
return render(request, 'main/signin.html', {})
def auth_home_sign_out(request):
logout(request)
messages.success(request, "Вы вышли из аккаунта")
return redirect('home')
Вот мой authentication.models
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Customer(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200, null=True)
def __str__(self):
return str(self.name)
Вот файл urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.auth_home, name='auth_home'),
path('signin', views.auth_home_sign_in, name='auth_home_sign_in'),
path('signout', views.auth_home_sign_out, name='auth_home_sign_out'),
]
Вот мой файл admin.py
from django.contrib import admin
from .models import Customer
# Register your models here.
admin.site.register(Customer)