Django-fr

Forum

#1 16-01-2013 10:19:24

Bourhis Yves
Membre
Inscription : 03-10-2011
Messages : 46

Récupération du nom de la table

Bonjour et meilleurs voeux à tous,

dans mon site d'administration j'ai défini des actions me permettant de
générer des listes en "pdf" pour lesquelles j'aurais besoin de
récupérer, pour l'en-tête, le nom de la table correspondante (en fait le
contenu de "verbose_name" ou "verbose_name_plural" défini dans "models.py").

En gros dans admin.py j'ai :
class MaTableAdmin(admin.ModelAdmin):
    [...]
    def editionPdf(modeladmin, request, queryset):
       return listePdf(queryset.all())
et je voudrais que ma fonction "listePdf" puisse récupérer le
"verbose_name"...

C'est sans doute trivial, mais j'avoue que je sêche...

Cordialement.

Hors ligne

#2 17-01-2013 17:13:32

Bourhis Yves
Membre
Inscription : 03-10-2011
Messages : 46

Re : Récupération du nom de la table

Bonjour,

Le 16/01/2013 10:19, Bourhis Yves a écrit :
> C'est sans doute trivial, mais j'avoue que je sêche...

J'ai trouvé une solution qui marche :
dans mon modèle je rajoute une ligne
listing = "La même chose que pour verbose_name"
et du coup je n'ai plus qu'à utiliser "queryset.model.listing" dans ma
fonction...

Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE LISTE
? La fin du monde aurait-elle finalement eu lieu le 22/12 dernier et
personne ne m'aurait prévenu ?

Cordialement.

Hors ligne

#3 17-01-2013 17:16:52

Olivier Girardot
Membre
Inscription : 08-04-2011
Messages : 14

Re : Récupération du nom de la table

euhh, non
je suis là...


Le 17 janvier 2013 17:13, Bourhis Yves <yves.bourhis _AT_ univ-brest.fr> a écrit
:

> Bonjour,
>
> Le 16/01/2013 10:19, Bourhis Yves a écrit :
>
>> C'est sans doute trivial, mais j'avoue que je sêche...
>>
>
> J'ai trouvé une solution qui marche :
> dans mon modèle je rajoute une ligne
> listing = "La même chose que pour verbose_name"
> et du coup je n'ai plus qu'à utiliser "queryset.model.listing" dans ma
> fonction...
>
> Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE LISTE ?
> La fin du monde aurait-elle finalement eu lieu le 22/12 dernier et personne
> ne m'aurait prévenu ?
>
> Cordialement.
> --
> ______________________________**______________________________**___
> Yves BOURHIS / Service Informatique / I.U.T. de BREST /Tel 8204
> Tel:0298016102/Fax:0298017108/mailto:Yves.Bourhis@**univ-brest.fr<Yves.Bourhis _AT_ univ-brest.fr>
> ______________________________**_________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/**listinfo/django<http://lists.afpy.org/mailman/listinfo/django>
>

Hors ligne

#4 17-01-2013 17:23:08

Keabard
Membre
Inscription : 12-09-2011
Messages : 5

Re : Récupération du nom de la table

Je suis là également, et lit avec intérêt les questions régulièrement
posées smile


On 17/01/2013 17:16, Olivier Girardot wrote:
> euhh, non
> je suis là...
>
>
> Le 17 janvier 2013 17:13, Bourhis Yves <yves.bourhis _AT_ univ-brest.fr
> <mailto:yves.bourhis _AT_ univ-brest.fr>> a écrit :
>
>     Bonjour,
>
>     Le 16/01/2013 10:19, Bourhis Yves a écrit :
>
>         C'est sans doute trivial, mais j'avoue que je sêche...
>
>
>     J'ai trouvé une solution qui marche :
>     dans mon modèle je rajoute une ligne
>     listing = "La même chose que pour verbose_name"
>     et du coup je n'ai plus qu'à utiliser "queryset.model.listing"
>     dans ma fonction...
>
>     Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE
>     LISTE ? La fin du monde aurait-elle finalement eu lieu le 22/12
>     dernier et personne ne m'aurait prévenu ?
>
>     Cordialement.
>     --
>     _______________________________________________________________
>     Yves BOURHIS / Service Informatique / I.U.T. de BREST /Tel 8204
>     Tel:0298016102 <tel:0298016102>/Fax:0298017108
>     <tel:0298017108>/mailto:Yves.Bourhis _AT_ univ-brest.fr
>     <mailto:Yves.Bourhis _AT_ univ-brest.fr>
>     _______________________________________________
>     django mailing list
>     django _AT_ lists.afpy.org <mailto:django _AT_ lists.afpy.org>
>     http://lists.afpy.org/mailman/listinfo/django
>
>
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#5 17-01-2013 17:23:48

Karmak23
Membre
Inscription : 17-04-2012
Messages : 9

Re : Récupération du nom de la table

Je suis là aussi, mais je n'avais ni de piste, ni le temps de chercher…

désolé et au plaisir d'une question à laquelle j'ai une réponse ;-)

--
Olivier (pas le même)

Le 17 janv. 2013 à 17:13, Bourhis Yves <yves.bourhis _AT_ univ-brest.fr> a écrit :

> Bonjour,
>
> Le 16/01/2013 10:19, Bourhis Yves a écrit :
>> C'est sans doute trivial, mais j'avoue que je sêche...
>
> J'ai trouvé une solution qui marche :
> dans mon modèle je rajoute une ligne
> listing = "La même chose que pour verbose_name"
> et du coup je n'ai plus qu'à utiliser "queryset.model.listing" dans ma fonction...
>
> Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE LISTE ? La fin du monde aurait-elle finalement eu lieu le 22/12 dernier et personne ne m'aurait prévenu ?
>
> Cordialement.
> --
> _______________________________________________________________
> Yves BOURHIS / Service Informatique / I.U.T. de BREST /Tel 8204
> Tel:0298016102/Fax:0298017108/mailto:Yves.Bourhis _AT_ univ-brest.fr
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#6 17-01-2013 17:34:47

David Thenon
Membre
Inscription : 11-08-2010
Messages : 156
Site Web

Re : Récupération du nom de la table

J'ai regardé vite fait, tu peux y accéder via l'attribut _meta de ton instance
qui contient pas mal de config de ton modèle, mais c'est des méthodes "proxy"
de django, faut "forcer" leur interprétation pour y accéder, genre :

  str(toninstance._meta.verbose_meta)

Enfin un truc du genre, tu peux voir les attributs auquel tu peux accéder en
faisant un :

print dir(toninstance._meta)

Le mercredi 16 janvier 2013 10:19:24 Bourhis Yves a écrit :
> Bonjour et meilleurs voeux à tous,
>
> dans mon site d'administration j'ai défini des actions me permettant de
> générer des listes en "pdf" pour lesquelles j'aurais besoin de
> récupérer, pour l'en-tête, le nom de la table correspondante (en fait le
> contenu de "verbose_name" ou "verbose_name_plural" défini dans "models.py").
>
> En gros dans admin.py j'ai :
> class MaTableAdmin(admin.ModelAdmin):
>     [...]
>     def editionPdf(modeladmin, request, queryset):
>        return listePdf(queryset.all())
> et je voudrais que ma fonction "listePdf" puisse récupérer le
> "verbose_name"...
>
> C'est sans doute trivial, mais j'avoue que je sêche...
>
> Cordialement.

Hors ligne

#7 18-01-2013 02:18:42

abki
Membre
Lieu : Paris
Inscription : 11-08-2010
Messages : 49
Site Web

Re : Récupération du nom de la table

Héllo Yves,

Le 16/01/2013 10:19, Bourhis Yves a écrit :
>
>> C'est sans doute trivial, mais j'avoue que je sêche...
>>
>
> J'ai trouvé une solution qui marche :
> dans mon modèle je rajoute une ligne
> listing = "La même chose que pour verbose_name"
> et du coup je n'ai plus qu'à utiliser "queryset.model.listing" dans ma
> fonction...
>

c'est pas DRY si tu es obligé de répéter le verbose_name.

Voici une liste des _meta que j'utilise souvent:

In [7]: favorite._meta.verbose_name
Out[7]: 'favorite'

In [8]: favorite._meta.module_name
Out[8]: 'favorite'

In [9]: favorite._meta.app_label
Out[9]: 'favorites'

Problème: elles sont pas accessibles dans les templates à cause de
l'underscore de _meta, il faut soit les passer directement dans le context
ou créer une methode sur le model qui va chercher la valeur dans _meta
genre:

def module_name(self):
    return self._meta.module_name

Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE LISTE ?
> La fin du monde aurait-elle finalement eu lieu le 22/12 dernier et personne
> ne m'aurait prévenu ?
>

Oui il y a du monde sur la liste :-)

Hors ligne

#8 18-01-2013 02:27:20

Encolpe Degoute
Membre
Inscription : 21-07-2016
Messages : 5

Re : Récupération du nom de la table

Le 17/01/2013 16:13, Bourhis Yves a écrit :
>
> Sinon une angoisse m'étreint : SUIS-JE LE DERNIER RESCAPE DE CETTE
> LISTE ? La fin du monde aurait-elle finalement eu lieu le 22/12
> dernier et personne ne m'aurait prévenu ?

Il ne faut pas réveiller le geek qui dort.

Hors ligne

#9 18-01-2013 09:20:18

Bourhis Yves
Membre
Inscription : 03-10-2011
Messages : 46

Re : Récupération du nom de la table

Bonjour,

Le 18/01/2013 02:18, Amirouche Boubekki a écrit :
> In [7]: favorite._meta.verbose_name
> Out[7]: 'favorite'

Merci : c'est exactement ça que j'avais besoin.

Très heureux que la liste soit encore vivante !
Cordialement.

Hors ligne

Pied de page des forums