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:
extrait views.py:
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 url.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 forms.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 models.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 pages pointant vers le form:
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
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
Partager