3 votes

verbose_name_plural inattendu dans un modèle ?

J'ai fait quelques modèles d'une future application, et, après avoir ajouté verbose_name et verbose_name_plural à chaque entrée d'un modèle de travail, pour le rendre 'beau', j'ai découvert qu'au moment de la validation, Django n'aime pas ça, et il dit :

  File "/home/andor/Documentos/desarrollo/grundymanage/../grundymanage/concursantes/models.py", line 4, in <module>
    class Concursante(models.Model):
  File "/home/andor/Documentos/desarrollo/grundymanage/../grundymanage/concursantes/models.py", line 7, in Concursante
    nombre_artistico = models.CharField(verbose_name='Nombre Artístico', verbose_name_plural='Nombres Artísticos', max_length=50)
TypeError: __init__() got an unexpected keyword argument 'verbose_name_plural'

Mon modèle commence ainsi :

# -*- encoding: utf-8 -*-
from django.db import models

class Concursante(models.Model):
    nombre = models.CharField(verbose_name='Nombre', max_length=30)
    apellidos = models.CharField(verbose_name='Apellidos', max_length=50)
    nombre_artistico = models.CharField(verbose_name='Nombre Artístico', verbose_name_plural='Nombres Artísticos', max_length=50)

Pourquoi "il" ne s'attend-il pas à un nom pluriel et verbeux ? Ne peut pas cohabiter avec verbose_name ?

Pour information, il s'agit des versions de mes logiciels :

  • Ubuntu 8.04
  • Python 2.5.2
  • Django "1" "0" "final"
  • Version du paquet Django ubuntu "1.0-1ubuntu1".

5voto

strager Points 41713

Il n'y a pas de verbose_name_plural . Il n'est pas logique d'avoir à la fois le singulier et le pluriel pour un même champ. Ils s'excluent mutuellement. Dans Django, ils portent le même nom : verbose_name .

Si vos données représentent plusieurs éléments (par exemple dans une relation de type "un à plusieurs"), utilisez une forme plurielle dans la rubrique verbose_name . Sinon, si vos données représentent un seul élément, utilisez une forme singulière.

Champs de noms verbeux dans la documentation de Django fournit quelques exemples.

5voto

Jarret Hardie Points 36266

Malheureusement, verbose_name_plural n'est pas une option sur le terrain. Il s'agit d'une méta-option pour le modèle lui-même. Un champ n'a pas de nom pluriel car, à moins qu'il ne s'agisse d'une relation plusieurs-à-plusieurs (auquel cas Django utilisera le pluriel pour le modèle pointé par la relation), il n'y a qu'une seule entité dans ce champ.

Voici la section doc : http://docs.djangoproject.com/en/dev/topics/db/models/#id3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X