verbose_name_plural неожиданно в модели? - PullRequest
3 голосов
/ 24 марта 2009

Я работал над некоторыми моделями будущего приложения, и после добавления 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
  • Джанго "1" "0" "финал"
  • Django версия пакета Ubuntu "1.0-1ubuntu1"

Ответы [ 2 ]

5 голосов
/ 24 марта 2009

К сожалению, verbose_name_plural не вариант на поле. Это мета-опция для самой модели. Поле не имеет имени во множественном числе, поскольку, если только это не отношение «многие ко многим» (в этом случае Django будет использовать множественное число для модели, на которую указывает отношение), в этом поле есть только одна сущность.

Вот раздел документации: http://docs.djangoproject.com/en/dev/topics/db/models/#id3

5 голосов
/ 24 марта 2009

Нет verbose_name_plural. Не имеет смысла иметь как единственное, так и множественное число для одного поля. Они взаимоисключающие. В Django они имеют одно и то же имя: verbose_name.

Если ваши данные представляют несколько элементов (например, в отношении «один ко многим»), используйте форму множественного числа в verbose_name. В противном случае, если ваши данные представляют один элемент, используйте единственную форму.

Подробные поля имени в документации Django содержит несколько примеров.

...