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 :

Afficher un champ ManyToManyField


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut Afficher un champ ManyToManyField
    Bonjour j'aimerai afficher un enregistrement d'un champ (thesaurus) qui est en ManyToManyField d'une de mes tables, mais je reçois juste l'emplacement de celle ci, je n'arrive pas a l'afficher correctement.

    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
    class Item(models.Model):
        name = models.CharField(max_length=255, blank=True, null=True)
        designation = models.CharField(max_length=511, blank=True, null=True)
        item_price = models.FloatField(blank=True, null=True)
        item_structure = models.ForeignKey(ItemStructure)
        store_entity = models.ForeignKey(StoreEntity)
        is_active = models.BooleanField(default=True)
        thesaurus = models.ManyToManyField(Thesaurus, verbose_name=_('thesaurus'), blank=True)
     
        def __unicode__(self):
            return self.name
     
        class Meta:
            verbose_name = _('item')
            verbose_name_plural = _('items')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    items = Item.objects.all()
     
    for items_element in items:
     
        monchamp = items_element.thesaurus
     
    def ma_page(request):
        return render_to_response('page/page-recherche.html',
        {'title': 'Recherche images',
         'attribu_image': monchamp,
             }, 
            context_instance=RequestContext(request)
        )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="contentLayout">
     
          {{ attribu_image }} 
     
    </div>

    Et je reçois ceci en affichage :

    <django.db.models.fields.related.ManyRelatedManager object at 0x01F8B0F0>




    Merci d'avance !!!

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,
    tu récuperes un Manager:
    Citation Envoyé par DjChat Voir le message
    Et je reçois ceci en affichage :

    <django.db.models.fields.related.ManyRelatedManager object at 0x01F8B0F0>
    Tu peux donc utiliser les méthodes du manager (all, filter,...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def ma_page(request):
        return render_to_response('page/page-recherche.html',
        {'title': 'Recherche images',
         'attribu_image': monchamp.all(),
             }, 
            context_instance=RequestContext(request)
        )
    Cette partie de la documentation devrait t' interesser.

    Bon python.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut
    Merci beaucoup pour ta réponse !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut
    Je ré-ouvre mon poste, je suis de-nouveau bloquer, j'ai regarder dans la doc mais vu que je suis as très fort en anglais, j'ai pas du tout saisir....


    Donc quand j'utilise cette manière pour afficher mon résultat :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def ma_page(request):
        return render_to_response('page/page-recherche.html',
        {'title': 'Recherche images',
         'attribu_image': monchamp.all(),
             }, 
            context_instance=RequestContext(request)
        )
    Je reçois un tableau en affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [<Thesaurus: frais>, <Thesaurus: [Bad Unicode data]>, <Thesaurus: rose>, <Thesaurus: seule>, <Thesaurus: blanc>,  '...(remaining elements truncated)...']

    Puis j'ai afficher juste un élément de mon tableau de cette manière et pas de souci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def ma_page(request):
        return render_to_response('page/page-recherche.html',
        {'title': 'Recherche images',
         'attribu_image': monchamp.all()[0],
             }, 
            context_instance=RequestContext(request)

    Par contre j'aurai aimer afficher toute les réponses de mon tableau, mais pas en tableau, donc j'ai essayer de cette manière et quelque autres, mais j'ai a chaque fois des erreur....



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = '<br>'.join(monchamp.all())

    Merci d'avance !!!

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    dans ton template, tu peux faire une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% for elem in mon_champs  %}elem.nom<br />{% endfor %}

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Par défaut
    C'est ce que je pensais faire, mais je voulais savoir si il y avais une autre manière de faire.


    Merci a toi !

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

Discussions similaires

  1. afficher un champ dans TDBComboBox
    Par badrou dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/09/2004, 07h29
  2. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  3. afficher un champ d'une autre table, Help!
    Par chakan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2004, 23h20
  4. Afficher 2 champs
    Par Pascal dans le forum Bases de données
    Réponses: 10
    Dernier message: 20/02/2004, 20h42
  5. [CR] Afficher un champs lié à un champs d'une autre table
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/09/2003, 11h48

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