[Python] Post data into database failed with form invalid message

Discussão em 'Python' iniciado por Stack, Maio 15, 2025.

  1. Stack

    Stack Membro Participativo

    #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

    Continue reading...

Compartilhe esta Página