IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Django 2.1.3 - ModelForm et mise à jour de Formulaire


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Django 2.1.3 - ModelForm et mise à jour de Formulaire
    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

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    petite relance, au cas où....

Discussions similaires

  1. mise à jour sous formulaire automatique
    Par maxeur dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/01/2008, 09h12
  2. Mise à jour de formulaires
    Par flesblue dans le forum 4D
    Réponses: 3
    Dernier message: 06/09/2007, 11h49
  3. [AJAX] Problème de mise à jour de formulaire
    Par ruby_robber dans le forum Ruby on Rails
    Réponses: 8
    Dernier message: 07/08/2007, 15h30
  4. Mise à jour sous formulaire
    Par Invité dans le forum IHM
    Réponses: 4
    Dernier message: 29/12/2006, 20h41
  5. probleme mise à jour sous formulaires
    Par fredzouille dans le forum Access
    Réponses: 1
    Dernier message: 28/08/2006, 06h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo