verbose_name_plural在模型中意外?

And*_*dor 3 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'
Run Code Online (Sandbox Code Playgroud)

我的模型开头是这样的:

# -*- 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)
Run Code Online (Sandbox Code Playgroud)

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

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

  • Ubuntu 8.04
  • Python 2.5.2
  • Django"1""0""最后"
  • Django ubuntu软件包版本"1.0-1ubuntu1"

str*_*ger 5

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

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

Django文档中的详细名称字段提供了一些示例.


Jar*_*die 5

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

这是doc部分:http://docs.djangoproject.com/en/dev/topics/db/models/#id3