我一直在做一些未来应用的模型,并且在将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一起生活吗?
仅供参考,这是我的软件版本:
答案 0 :(得分:5)
没有verbose_name_plural
。对于一个场而言,单数和复数都没有意义。它们是相互排斥的。在Django中,它们使用相同的名称:verbose_name
。
如果您的数据代表多个项目(例如,在一对多关系中),请在verbose_name
中使用复数形式。否则,如果您的数据代表单个项目,请使用单数形式。
答案 1 :(得分:5)
不幸的是,verbose_name_plural
不是该字段的选项。它是模型本身的元选项。一个字段没有复数名称,因为除非它是多对多关系(在这种情况下Django将使用复数作为关系指向的模型),该字段中只有一个实体。
以下是文档部分:http://docs.djangoproject.com/en/dev/topics/db/models/#id3