ПРОВЕРКА ТОГО, ДОБАВИЛ ЛИ ПОЛЬЗОВАТЕЛЬ УЖЕ ЭЛЕМЕНТ В БАЗУ ДАННЫХ
Мне нужна помощь💔😥 !!! пожалуйста, кто-нибудь помогите мне. Я создала сайт типа каталога, где администраторы школ могут войти и добавить свои школы, все работает отлично.
< < <УРЛЫ
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from . import views, visit_views, Hot_views, user_login
urlpatterns = [
path('admin/', admin.site.urls),
path('base', views.BASE, name='base'),
path('', views.HOME, name='home'),
path('ecole', views.ECOLE_SECONDAIRE, name='ecole_secondaire'),
path('contact', views.CONTACT_US, name='contact_us'),
path('about', views.ABOUT_US, name='about_us'),
path('View-school/<str:id>', views.VIEW_SCHOOL, name='view_school'),
path('accounts/register', user_login.REGISTER, name='register'),
path('accounts/', include('django.contrib.auth.urls')),
path('doLogin', user_login.DOLOGIN, name='doLogin'),
path('doLogout', user_login.doLogout, name='logout'),
path('Hothome', Hot_views.HOME, name='hothome'),
path('Add-school', Hot_views.ADD_SCHOOL, name='add_school'),
path('View-school', Hot_views.VIEW_SCHOOL, name='hote_view_school'),
path('Update-school', Hot_views.UPDATE_SCHOOL, name='update_school'),
path('Delete-school', Hot_views.DELETE_SCHOOL, name='delete_school'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
МОДЕЛИ
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
USER = (
(1, 'HOD'),
)
user_type = models.fields.CharField(choices=USER, max_length=50, default=1)
profile_pic = models.ImageField(upload_to='media/profile.pic')
class Correspondant(models.Model):
admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
titre = models.CharField(max_length=100)
contact = models.CharField(max_length=100)
def __str__(self):
return f'{self.admin.first_name} {self.admin.last_name}'
class Ecole(models.Model):
scholl_name = models.fields.CharField(max_length=100)
logo = models.ImageField(upload_to='media/logo')
adresse = models.fields.TextField(max_length=100)
created_at = models.fields.DateTimeField(auto_now_add=True)
updated_at = models.fields.DateTimeField(auto_now=True)
situation = models.fields.TextField(max_length=100)
contact = models.fields.CharField(max_length=30)
email = models.EmailField()
code_ecole = models.fields.CharField(max_length=20)
description = models.fields.TextField(max_length=100)
fiche_r = models.FileField(upload_to='pdf')
fiche_i = models.ImageField(upload_to='media/fiche')
fiche_1 = models.ImageField(upload_to='media/fiche')
fiche_2 = models.ImageField(upload_to='media/fiche')
fiche_3 = models.ImageField(upload_to='media/fiche')
def __str__(self):
return self.scholl_name
USER_LOGIN.py
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, logout, login
from django.http import HttpResponse
from django.shortcuts import render, redirect
from app.EmailBackEnd import EmailBackEnd
from app.models import CustomUser, Correspondant
def REGISTER(request):
if request.method == 'POST':
username = request.POST.get('username')
first_name = request.POST.get('first_name')
last_name = request.POST.get('last_name')
email = request.POST.get('email')
password = request.POST.get('password')
profile_pic = request.POST.get('profile_pic')
titre = request.POST.get('titre')
contact = request.POST.get('contact')
if CustomUser.objects.filter(email=email).exists():
messages.warning(request, 'Adresse Email déja existante !')
return redirect('register')
if CustomUser.objects.filter(username=username).exists():
messages.warning(request, "Nom d'utilisteur déja existant")
return redirect('register')
else:
user = CustomUser(
first_name=first_name,
last_name=last_name,
username=username,
email=email,
profile_pic=profile_pic,
user_type=1,
)
user.set_password(password)
user.save()
correspondant = Correspondant(
admin=user,
titre=titre,
contact=contact,
)
correspondant.save()
return redirect('login')
return render(request, 'registration/register.html')
def DOLOGIN(request):
global user
if request.method == "POST":
email = request.POST.get('email')
password = request.POST.get('password')
user = EmailBackEnd.authenticate(request,
username=email,
password=password,
)
if user is not None:
login(request, user)
user_type = user.user_type
if user_type == '1':
return redirect('add_school')
else:
messages.error(request, 'Email ou Mot de passe incorrects ! Réessayez.')
return redirect('login')
@login_required(login_url='/') def doLogout(request): logout(request) return redirect('home')