school give us work and i have dit this.
i want to create an super user to test my API and then i get this error message
PS C:UsersmarcwOneDriveDocumentsdjango school projectGNAPI> python .manage.py createsuperuser
Username: marc
Email: [email protected]
Password:
Password (again):
The password is too similar to the username.
This password is too short. It must contain at least 8 characters.
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Traceback (most recent call last):
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendssqlite3base.py”, line 329, in execute
return super().execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.IntegrityError: NOT NULL constraint failed: API_gendarme.gendarmerie_name_id
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File “C:UsersmarcwOneDriveDocumentsdjango school projectGNAPImanage.py”, line 22, in
main()
File “C:UsersmarcwOneDriveDocumentsdjango school projectGNAPImanage.py”, line 18, in main
execute_from_command_line(sys.argv)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocoremanagement_init_.py”, line 442, in execute_from_command_line
utility.execute()
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocoremanagement_init_.py”, line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocoremanagementbase.py”, line 413, in run_from_argv
self.execute(*args, **cmd_options)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocontribauthmanagementcommandscreatesuperuser.py”, line 89, in execute
return super().execute(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocoremanagementbase.py”, line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocontribauthmanagementcommandscreatesuperuser.py”, line 238, in handle
self.UserModel._default_manager.db_manager(database).create_superuser(
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocontribauthmodels.py”, line 172, in create_superuser
return self._create_user(username, email, password, **extra_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocontribauthmodels.py”, line 155, in _create_user
user.save(using=self._db)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangocontribauthbase_user.py”, line 78, in save
super().save(*args, **kwargs)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsbase.py”, line 822, in save
self.save_base(
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsbase.py”, line 909, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsbase.py”, line 1067, in _save_table
results = self._do_insert(
^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsbase.py”, line 1108, in _do_insert
return manager._insert(
^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsmanager.py”, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelsquery.py”, line 1847, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbmodelssqlcompiler.py”, line 1823, in execute_sql
cursor.execute(sql, params)
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 122, in execute
return super().execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 79, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 100, in _execute
with self.db.wrap_database_errors:
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbutils.py”, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendsutils.py”, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “C:UsersmarcwAppDataLocalProgramsPythonPython312Libsite-packagesdjangodbbackendssqlite3base.py”, line 329, in execute
return super().execute(query, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.IntegrityError: NOT NULL constraint failed: API_gendarme.gendarmerie_name_id
I tried to create a great user to be able to test my API but its sent me the errors you see there I tried to look it up but hela I was able to find it
this is my code here…
# models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class Gendarmerie(models.Model):
nom = models.CharField(max_length = 180)
commandant = models.CharField(max_length = 180)
departement = models.CharField(max_length = 180)
arrondissement = models.CharField(max_length = 180)
region = models.CharField(max_length=50)
create_at = models.DateTimeField(auto_now_add=True)
modify_at = models.DateTimeField(auto_now=True)
modify_by = models.OneToOneField("API.Gendarme", on_delete = models.CASCADE, null = True, blank = True)
def __init__(self):
return self.nom + " - " + self.commandant + ',' + self.departement + ', ' + self.arrondissement + ',' + self.region
class Gendarme(AbstractUser):
nom = models.CharField(max_length = 180)
prenom = models.CharField(max_length = 180)
matricule = models.CharField(max_length = 8, unique = True)
numero_cni = models.CharField(max_length = 13, blank= True)
phone_number = models.CharField(max_length= 255)
email = models.CharField(max_length= 255,unique = True)
mot_de_passe = models.CharField(max_length = 13)
profile_picture = models.CharField(blank = True, max_length = 180)
residence = models.CharField(max_length = 180)
grade = models.CharField(max_length = 180)
gendarmerie_name = models.OneToOneField(Gendarmerie, on_delete = models.CASCADE, auto_created=True)
create_at = models.DateTimeField(auto_now_add = True, auto_now = False)
modify_at = models.DateTimeField(auto_now_add = True)
def __str__(self):
return self.nom + ',' +self.prenom+ ',' + self.matricule+ ',' + self.numero_cni+ ',' + self.phone_number+ ',' + self.email+ ',' + self.profile_picture+ ',' + self.residence+ ',' + self.grade
class Criminel(models.Model):
nom = models.CharField
prenom = models.CharField
nationaliter = models.CharField
numero_cni = models.CharField
photos = models.CharField(max_length= 255)
motifs = models.CharField(max_length=500)
date_naissance = models.DateField()
photo_preuve = models.CharField(max_length= 255) # ajouter une preuve de crime (par exemple un document ou une image)
nom_parent = models.CharField(max_length = 188)
residence = models.CharField(max_length=100)
arrondissement = models.CharField(max_length = 180)
departement = models.CharField(max_length = 180)
region = models.CharField(max_length = 96)
create_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now = True, null = True)
create_by = models.ForeignKey("API.Gendarme", on_delete=models.CASCADE)
def __init__(self):
return self.nom+","+self.prenom+","+self.nationaliter+","+self.numero_cni+","+self.photos+","+self.motifs+","+self.date_naissance+","+self.photo_preuve+","+self.nom_parent+","+self.residence+","+self.arrondissement+","+self.departement+","+self.region
# form.py
from .models import *
from django.contrib import admin
class listCriminel(admin.ModelAdmin):
list_display = (
"nom", "prenom", "nationaliter", "numero_cni", "photos", "motifs", "date_naissance",
"photo_preuve", "nom_parent", "residence", "arrondissement", "departement", "region"
)
class listGendarme(admin.ModelAdmin):
list_display = (
"nom", "prenom", "matricule", "numero_cni", "phone_number", "email", "mot_de_passe", "profile_picture", "residence", "grade"
)
class listGendarmerie(admin.ModelAdmin):
list_display = (
"nom", "commandant", "departement", "arrondissement", "region"
)
# admin.py
from django.contrib import admin
from .form import *
from .models import *
admin.site.register(Criminel, listCriminel)
admin.site.register(Gendarme, listGendarme)
admin.site.register(Gendarmerie, listGendarmerie)
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework import permissions
from .models import *
from .serializers import *
class CriminalApiView(APIView):
permissions_class = [permissions.IsAuthenticated]
def get(self, request, *args, **kwargs):
if request.method == 'GET':
criminel = Criminel.objects.all()
serializers = CriminelSerializers(criminel, many=True)
return Response(serializers.data, status=status.HTTP_200_OK)
def post(self, request, *args, **kwargs):
if request.method == 'POST':
data = {
'nom': request.data.get['nom'],
'prenom': request.data.get['prenom'],
'nationaliter': request.data.get['nationaliter'],
'numero_cni':request.data.get['numero_cni'],
'photos':request.data.get['photos'],
'motifs': request.data.get['motifs'],
'date_naissance': request.data.get['date_naissance'],
'photo_preuve': request.data.get['photo_preuve'],
'nom_parent': request.data.get['nom_parent'],
'residence': request.data.get['residence'],
'arrondissement': request.data.get['arrondissement'],
'departement': request.data.get['departement'],
'region': request.data.get['region'],
}
serializer = CriminelSerializers(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class GendarmeApiViews(APIView):
permission_classe = [permissions.IsAuthenticated]
def get(self, request, *args, **kwargs):
if request.method == 'GET':
gendarme = Gendarme.objects.all()
serializers = GendarmeSerializers(gendarme, many= True)
return Response(serializers.data, status= status.HTTP_200_OK)
def post(self, request, *args, **kwargs):
if request.method == 'POST':
data = {
'nom': request.data.get['nom'],
'prenom': request.data.get['prenom'],
'nationaliter': request.data.get['nationaliter'],
'numero_cni': request.data.get['numero_cni'],
'photos': request.data.get['photos'],
'motifs': request.data.get['motifs'],
'date_naissance': request.data.get['date_naissance'],
'photo_preuve': request.data.get['photo_preuve'],
'nom_parent': request.data.get['nom_parent'],
'residence': request.data.get['residence'],
'arrondissement': request.data.get['arrondissement'],
'departement': request.data.get['departement'],
'region': request.data.get['region']
}
serializers = GendarmeSerializers(data=data)
if serializers.is_valid():
serializers.save()
return Response(serializers.data, status=status.HTTP_201_CREATED)
else:
return Response(serializers.errors, status=status.HTTP_400_BAD_REQUEST)
class GendarmerieApiView(APIView):
permission_classe = [permissions.IsAuthenticated]
def get(self,request, *args, **kwargs):
if request.method == 'GET':
gendarme = Gendarmerie.objects.all()
serializer = GendarmerieSerializers(gendarme, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
def post(self,request, *args, **kwargs):
if request.method == 'POST':
data = {
'nom': request.data.get['nom'],
'commandant': request.data.get['commandant'],
'departement': request.data.get['departement'],
'arrondissement': request.data.get['arrondissement'],
'region': request.data.get['region']
}
serializers = GendarmerieSerializers(data=data)
if serializers.is_valid():
serializers.save()
return Response(serializers.data, status=status.HTTP_201_CREATED)
else:
return Response(serializers.errors, status=status.HTTP_400_BAD_REQUEST)
# urls.py
from django.urls import path
from .views import *
urlpatterns = [
path("criminel/", CriminalApiView.as_view()),
path("gendarme/", GendarmeApiViews.as_view()),
path("gendarmerie/", GendarmerieApiView.as_view()),
]
marc dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.