Bonjour à tous,

Je débute, je m'autoforme, soyez indulgents svp

j'ai un souci pour récupérer des données d'un formulaire, en vue les mettre à jour. la création fonctionne, mais pas la mise à jour.... à la rentative de mise à jour avec le code qui suit, je récolte un formulaire vide (non renseigné) et je n'arrive pas à comprendre pourquoi.

Je suis sur le site : https://docs.djangoproject.com/fr/2....ms/modelforms/

j'aimerais comprendre pourquoi mon formulaire (issu d'un "ModelForm") ne récupère pas les données de la base de données:

extrait template:
Code TWIG : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{% extends 'monapp/layouts/mixins_base.html' %}
{% load static %}
 
 
            {% block caption_mixin %}
                    Nouvelle évaluation :
                        <hr><h3></h3>
                        <hr>
            <hr>
            <!--
 
            -->
            <form action="" method="post">
                {% csrf_token %}
                {{ form.as_p }}
 
            <input type="submit" value="Enregistrer" />
            </form>
            <hr>
            {% endblock caption_mixin %}
 
 
            {% block th_entetes_mixin %}
 
            {% endblock th_entetes_mixin %}
 
            {% block mixin_for_content %}
            {% endblock mixin_for_content %}
 
            {% block mixin_else_content %}
            {% endblock mixin_else_content %}
extrait views.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""
Formulaires Evaluations
-----------------------------
"""
 
 
"""
#### UPDATE ####
-----------------------------
"""
def Formview_Evaluations_modifier(request, pk):
    if request.method == 'POST':
        evaluation_a_modifier = Evaluations.objects.get(pk=pk)
        form = Form_Evaluations(request.POST, instance=evaluation_a_modifier)
    return render(request, 'monapp/pages/evaluations/forms/evaluation_form.html', locals())
 
"""
#### CREATION ####
-----------------------------
"""
def Formview_Evaluations(request):
    if request.method == 'POST':
        form = Form_Evaluations(request.POST)
 
        if form.is_valid():
            form.save()
            envoi = True
 
    else:
        form = Form_Evaluations()
 
    return render(request, 'monapp/pages/evaluations/forms/evaluation_form.html', locals())
extrait url.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
urlpatterns = [
    path('evaluations/form/', views.Formview_Evaluations, name='form_evaluation_nouveau'),
    path('evaluations/form/<int:pk>', views.Formview_Evaluations_modifier, name='form_evaluation_modifier'),
]
extrait forms.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
"""
EVALUATIONS
"""
class Form_Evaluations(forms.ModelForm):
    class Meta:
        model = Evaluations
        fields = '__all__'
extrait models.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Evaluations(Attributs_Communs):
    CLOSE = 'Close'
    OUVERTE = 'Ouverte'
    LISTE_STATUTS_EVALUATION = {(CLOSE, 'Close'), (OUVERTE, 'Ouverte')}
    statut = models.CharField(max_length=10, choices=LISTE_STATUTS_EVALUATION,null=True, default=OUVERTE)
    nom_evaluation = models.CharField(max_length=250, blank=False, unique=True, db_index=True)
    conseillers = models.ForeignKey('Conseillers', on_delete=models.CASCADE, verbose_name='conseillers_id')
    campagnes = models.ForeignKey('Campagnes', on_delete=models.CASCADE, verbose_name='campagnes_id')
    categ_evaluations = models.ForeignKey('Categ_Evaluation', on_delete=models.CASCADE,
                                          verbose_name='categ_evaluations_id')
    Examinateur = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name='Examinateur')
    questionnaires = models.ForeignKey('Questionnaires', on_delete=models.CASCADE, verbose_name='questionnaires_id')
    departements = models.ForeignKey('Departements', on_delete=models.CASCADE, verbose_name='departements_id')
    TOTAL_POINTS = models.IntegerField(default=(0), blank=True, unique=False, db_index=False)
    TAUX_REUSSITE = models.IntegerField(default=(0), blank=False, unique=False, db_index=False)
    SYNTHESE = models.TextField(default=('RAS'), blank=False, unique=False, db_index=False)
    POINTS_FORTS = models.TextField(default=('RAS'), blank=False, unique=False, db_index=False)
    AXES_AMELIORATION = models.TextField(default=('Ligne1\nLigne2\nLigne3'), blank=False, unique=False, db_index=False)
    ACTIONS_CORRECTIVES = models.TextField(default=('RAS'), blank=False, unique=False, db_index=False)
 
    def __str__(self):
        return self.nom_evaluation
extrait pages pointant vers le form:
Code TWIG : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{% extends 'monapp/admin/monapp_app_index.html' %}
{% load static %}
 
 
 
        {% block contenu_droite %}
        <div>
                <table>
 
                    <thead>
                        <caption><h1>Détails de l''Evaluatiion</h1></caption>
                        <caption><h1><b>{{ evaluations.nom_evaluation }}</b></h1></caption>
                        <div id="form" class="container">
                            <form  method="post" action="{% url 'monapp:form_evaluation_modifier' evaluations.id %}">
                                {% csrf_token %}
                                {{ form.as_p }}
                                <input type="submit" value="Modifier Evaluation">
                            </form>
                        </div>
                    </thead>
                    <tfoot></tfoot>
 
                    <tbody>
                        <tr>
                            <td align="left">ID :</td>
                            <td align="left">{{ evaluations.id }}</td>
                        </tr>
                        <tr>
                            <td align="left">STATUT :</td>
                            {% if evaluations.statut == 'Ouverte' %}
                            <td align="left"><font color="red"><b>{{ evaluations.statut }}</b></font></td>
                            {% else %}
                            <td align="left"><font color="blue"><b>{{ evaluations.statut }}</b></font></td>
                            {% endif %}
                        </tr>
 
                    </tbody>
                </table>
            </div>
        {% endblock contenu_droite %}

merci pour votre aide