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

Django Python Discussion :

Comment définir l'ordre des champs de formulaire dont un champ est non-lié


Sujet :

Django Python

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut Comment définir l'ordre des champs de formulaire dont un champ est non-lié
    Bonjour,

    j'ai un formulaire lié à un modèle
    j'ai ajouté un champ non-lié ('pays' calculé à partir de l'un des champs liés) pour simple affichage

    je ne parviens pas à agir sur l'ordre de ce champ non lié qui est systématiquement mis à la fin
    j'ai essayé field_order mais çà ne fonctionne que sur les champs liés du formulaire...

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    class ParametrageForm(forms.ModelForm):
     
     
        def __init__(self, request, *args, **kwargs):
            super(ParametrageForm, self).__init__(*args, **kwargs)
            self.request = request
            self.language = request.session.get('language')
            self.user = request.user.id # id de l'utilisateur
            self.user_pays = request.session.get('user_pays') 
            self.user_site_type = request.session.get('user_site_type') 
            self.user_site = request.session.get('user_site') 
            instance = Parametrage.objects.get(asp_par_cle = kwargs['instance'].asp_par_cle) # instance du formulaire 
            SITE_CONCERNE = Site.option_list_sites(self.language)
     
            if self.language == 'en':
                pays = Site.objects.get(sit_abr = instance.asp_par_loc).reg.pay.pay_nom_eng
            elif self.language == 'fr':
                pays = Site.objects.get(sit_abr = instance.asp_par_loc).reg.pay.pay_nom_fra
            else:
                pays = Site.objects.get(sit_abr = instance.asp_par_loc).reg.pay.pay_nom_eng
     
            self.fields["pays"] = forms.CharField(label = _("Country"),widget=forms.TextInput,initial=pays, disabled=True)
            self.fields['pays'].widget.attrs.update({
                'autocomplete': 'off'
            })
            self.fields["asp_par_loc"] = forms.ChoiceField(label = _("Site concerned by settings"), widget=forms.Select, choices=SITE_CONCERNE, disabled=True)
            self.fields["asp_par_ale"] = forms.IntegerField(label = _("Stock alert value for this site"), widget=forms.TextInput,)
            self.fields['asp_par_ale'].widget.attrs.update({
                'autocomplete': 'off'
            })
            self.fields["asp_par_con"] = forms.IntegerField(label = _("Stock confort value for this site"), widget=forms.TextInput,)
            self.fields['asp_par_con'].widget.attrs.update({
                'autocomplete': 'off'
            })    
            field_order = ['pays','asp_par_loc','asp_par_ale','asp_par_con',]
     
     
        class Meta:
            model = Parametrage
            fields = ('asp_par_loc','asp_par_ale','asp_par_con',)
    d'avance merci pour votre aide

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bonjour

    C'est pas plutôt self.field_order = ...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    non çà ne change rien malheureusement...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Normalement, l'attribut "fields" est initialisé comme OrderectDict suivant la liste "field_order". Et comme l'OrderedDict contient déjà des clefs, les ajouts se font "à la fin".

    Pour réarranger ce dictionnaire, il faut probablement le faire via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.order_fields(['pays','asp_par_loc','asp_par_ale','asp_par_con',])
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    nickel çà marche parfaitement
    merci+++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier l'ordre des champs dans un formulaire
    Par Jeannot45 dans le forum Word
    Réponses: 3
    Dernier message: 19/06/2008, 13h23
  2. Réponses: 2
    Dernier message: 09/04/2008, 00h05
  3. Réponses: 2
    Dernier message: 25/07/2007, 13h39
  4. Réponses: 1
    Dernier message: 02/05/2007, 15h16
  5. tabulations : définir ordre des champs
    Par Aurèl90 dans le forum Access
    Réponses: 3
    Dernier message: 06/01/2006, 15h30

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