verbose_name_plural在模型中意外?

时间:2009-03-24 12:31:10

标签: python django django-models

我一直在做一些未来应用的模型,并且在将verbose_name和verbose_name_plural添加到工作模型的每个条目之后,为了使它“美观”,我发现在验证时,Django没有就这样,它说:

  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'

我的模型开头是这样的:

# -*- 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)

为什么'他'不希望那里有多个冗长的名字?不能和verbose_name一起生活吗?

仅供参考,这是我的软件版本:

  • Ubuntu 8.04
  • Python 2.5.2
  • Django“1”“0”“final”
  • Django ubuntu软件包版本“1.0-1ubuntu1”

2 个答案:

答案 0 :(得分:5)

没有verbose_name_plural。对于一个场而言,单数和复数都没有意义。它们是相互排斥的。在Django中,它们使用相同的名称:verbose_name

如果您的数据代表多个项目(例如,在一对多关系中),请在verbose_name中使用复数形式。否则,如果您的数据代表单个项目,请使用单数形式。

Verbose name fields in the Django documentation提供了一些示例。

答案 1 :(得分:5)

不幸的是,verbose_name_plural不是该字段的选项。它是模型本身的元选项。一个字段没有复数名称,因为除非它是多对多关系(在这种情况下Django将使用复数作为关系指向的模型),该字段中只有一个实体。

以下是文档部分:http://docs.djangoproject.com/en/dev/topics/db/models/#id3