Post data into database failed with form invalid message

#I can not send data to my db, please help me to check.#

Here is the model

Model:
class f_groupe_user(models.Model):
    IDF_GROUPE_USER=models.AutoField(primary_key=True)
    LibELE_GROUPE= models.CharField(max_length=120)
    Soc_sigle = models.CharField(max_length=120)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at= models.DateTimeField(auto_now=True)
    UTIL_CREATION= models.CharField(max_length=120)
    UTIL_MODIF= models.CharField(max_length=120)

    def __str__(self):
        return self.LibELE_GROUPE

Here is the form

class f_groupe_userForm(forms.ModelForm):
    class Meta:
        def __init__(self, *args, **kwargs):
            super(f_groupe_userForm, self).__init__(*args, **kwargs)
        model = f_groupe_user
        fields = ['LibELE_GROUPE', 'UTIL_CREATION', 'UTIL_MODIF','Soc_sigle']
        labels = {'LibELE_GROUPE': 'Nom*', 'created_at': 'Date de création',  'updated_at': 'Date de modification', 'UTIL_CREATION': 'UTIL CREATION', 'UTIL_MODIF': 'UTIL MODIF', 'Soc_sigle':',Societe'}
       
        widgets={
            'name'           : forms.TextInput(attrs={'class':'form-control'}),
        }
        help_texts = {
            "LibELE_GROUPE": _("Donner le nom du groupe utilisateur"),
        }
        error_messages = {
            "name": {
                "max_length": _("Ce nom du groupe est trop long."),
            },
        }

Here is the views

def Insert_group(request):
    print(f" La Request method est : {request.method}")
    sEtat = "crea"
    if request.method == 'POST':
        print('Je rentre dans group Insert_group avec POST'))
        form = f_groupe_userForm()
        form.LibELE_GROUPE = request.POST.get("LibELE_GROUPE")
        form.updated_at = timezone.now()
        form.created_at = timezone.now()
        form.UTIL_CREATION = settings.WCURUSER
        form.UTIL_MODIF = settings.WCURUSER
        form.Soc_sigle = settings.WSOCGEN
   
        data = {
           
            "UTIL_CREATION": settings.WCURUSER,
            "UTIL_MODIF": settings.WCURUSER,
            "Soc_sigle" : settings.WSOCGEN,
        }

        print(f" La valeur de data est : {data}")

        form = f_groupe_userForm(request.POST, initial=data)
        print(request.method)
        if form.has_changed():
            print("The following fields changed: %s" % ", ".join(form.changed_data))

        if form.is_valid():
            LibELE_GROUPE = form.cleaned_data['LibELE_GROUPE']
            created_at = form.cleaned_data[
                'created_at'] 
            updated_at = form.cleaned_data['updated_at']
            UTIL_CREATION = form.cleaned_data['UTIL_CREATION']
            UTIL_MODIF = form.cleaned_data['UTIL_MODIF']
            Soc_sigle = form.cleaned_data['Soc_sigle']
            print(f"La valeur des donnée du formulaire sont: {form.cleaned_data}")

            if LibELE_GROUPE is not None:
 
                if 'Ajouter' in request.POST:
                    print('Oui on peut ajouter')
                    f_groupe_user.save()
                    print('ajout effectué!!!')
                    return HttpResponseRedirect("CreateGroup/success")
                else:
                    return HttpResponseRedirect("CreateGroup")

            else:
                return HttpResponse("Vous devriez vous assurer que tous les champs sont renseignés et validés!")

        else:
            print('form pas valide')
            return render(request, 'appMenuAdministrator/L_liste_GroupeUtilisateur/FicheCreaGroupe.html', {'form': form})
    else:
        form = f_groupe_userForm()
        return render(request, 'appMenuAdministrator/L_liste_GroupeUtilisateur/FicheCreaGroupe.html', {'form': form, 'sEtat': sEtat})

html file :

            <div class="card card-body" >
                <h5>Informationsx</h5>
                <hr>
                <p>Nom:</p>
                <fieldset>
                    <input name="LibELE_GROUPE" type="text" id="LibELE_GROUPE"  size="35"
                               placeholder="Nom du groupe" tabindex="1" >*
                </fieldset>

                <fieldset>
                    <input name="created_at" type="date" id="created_at" value="{{created_at}}" size="35" placeholder=""
                           tabindex="2" style="display:None;">
                </fieldset>
                <fieldset>
                    <input name="updated_at" type="date" id="updated_at" value="{{updated_at}}" size="35" placeholder=""
                           tabindex="3" style="display:None;">
                </fieldset>

                <fieldset>
                    <input name="UTIL_CREATION" type="text" id="UTIL_CREATION" value="{{UTIL_CREATION}}" size="35"
                           placeholder="" tabindex="4" style="display:None;>
                </fieldset>
                <fieldset>
                    <input name="UTIL_MODIF" type="text" id="UTIL_MODIF" value="{{UTIL_MODIF}}" size="35" placeholder=""
                           tabindex="5" style="display:None;">
                </fieldset>
                <fieldset>
                    <input name="Soc_sigle" type="text" id="Soc_sigle" value="{{Soc_sigle}}" size="35" placeholder=""
                           tabindex="6" style="display:None;">
                </fieldset>

            </div>

        </div>

Here are the errors msg get on Terminal:

La Request method est : POST
Je rentre dans group Insert_group avec POST
 La valeur de data est : {'created_at': datetime.datetime(2025, 5, 15, 11, 42, 53, 871867), 'updated_at': datetime.datetime(2025, 5, 15, 11, 42, 53, 871867), 'UTIL_CREATION': 'admin', 'UTIL_MODIF': 'admin', 'Soc_sigle': 'ABI'}
POST
The following fields changed: LibELE_GROUPE
The following fields are not valid : UTIL_CREATION, UTIL_MODIF, Soc_sigle, created_at, updated_at
[15/May/2025 11:42:53] "POST /AccessAdmin/Insert_group HTTP/1.1" 200 11181
[15/May/2025 11:42:53] "GET /static/css/all.min.css HTTP/1.1" 404 1985

Please help to fix. I don"t need dates fields and user create and change fields appear

I believe that your form isn't saving because you're not properly creating the model instance.

Try something like this:

def Insert_group(request):
    if request.method == 'POST':
        form = f_groupe_userForm(request.POST)
        if form.is_valid():
            group = form.save(commit=False)
            group.UTIL_CREATION = settings.WCURUSER
            group.UTIL_MODIF = settings.WCURUSER
            group.Soc_sigle = settings.WSOCGEN
            group.save()
            return redirect('success_url')
    else:
        form = f_groupe_userForm()
    return render(request, 'template.html', {'form': form})

Use form.save(commit=False) to get an unsaved instance, then set hidden fields before the final save.

@Mahrez, it seems the same error so nothing changed. I test the code and the problem is that the form is not valid. Your answer is when the form is valid before to apply the save code. please, could you check again or anyone can help me, please.

def Insert_group(request):
    print(f" The begining Request method is : {request.method}")
    sEtat = "crea"
    data = {
        "created_at": datetime.today(),
        "updated_at": datetime.today(),
        "UTIL_CREATION": settings.WCURUSER,
        "UTIL_MODIF": settings.WCURUSER,
        "Soc_sigle": settings.WSOCGEN,
    }
    if request.method == 'POST':
        print('Yes i am in  POST method')
        LibELE_GROUPE = request.POST.get("LibELE_GROUPE")

        form = f_groupe_userForm(request.POST)
        print(request.method)
        if form.has_changed():
            print("The following fields changed: %s" % ", ".join(form.changed_data))
        if form.is_valid():

            groupe = form.save(commit=False)
            groupe.updated_at         = datetime.today()
            groupe.created_at         = datetime.today()
            groupe.UTIL_CREATION      = settings.WCURUSER
            groupe.UTIL_MODIF         = settings.WCURUSER
            groupe.Soc_sigle          = settings.WSOCGEN

            if LibELE_GROUPE is not None:
                print(f"LibELE_GROUPE value is  : {LibELE_GROUPE}")
                if 'Ajouter' in request.POST:
                    print('Yes we can insert now')
                    groupe.save()
                    print('insert successful!!!')
                    return HttpResponseRedirect("CreateGroup/success")
                else:
                    return HttpResponseRedirect("CreateGroup")

            else:
                # In reality we'd use a form class
                # to get proper validation errors.
                return HttpResponse("fields libelle is empty!")
                # "Make sure all fields are entered and valid.")
            ## Process the form data
            # pass
            # return redirect('success')
        else:
            #print('form pas valide')
            print("The following fields are not valid : %s" % ", ".join(form.errors.as_data()))

            return render(request, 'appMenuAdministrator/L_liste_GroupeUtilisateur/FicheCreaGroupe1.html', {'form': form})
    else:
        form = f_groupe_userForm()
        data = data
        # print(f"La valeur de libellé est : {LibELE_GROUPE}")
        return render(request, 'appMenuAdministrator/L_liste_GroupeUtilisateur/FicheCreaGroupe1.html', {'form': form, 'sEtat': sEtat, 'data': data})


15/May/2025 15:19:43] "GET /static/css/all.min.css HTTP/1.1" 404 1985
 The begining Request method is : GET
[15/May/2025 15:19:45] "GET /AccessAdmin/Insert_group HTTP/1.1" 200 11230
[15/May/2025 15:19:45] "GET /static/css/all.min.css HTTP/1.1" 404 1985
 The begining Request method is : POST
Yes i am in  POST method
POST
The following fields changed: LibELE_GROUPE
The following fields are not valid : UTIL_CREATION, UTIL_MODIF, Soc_sigle, created_at, updated_at
[15/May/2025 15:19:55] "POST /AccessAdmin/Insert_group HTTP/1.1" 200 11181
[15/May/2025 15:19:55] "GET /static/css/all.min.css HTTP/1.1" 404 1985

Вернуться на верх