2009-12-30 2 views
3

Я пытаюсь создать сообщение, которое использует своего рода плюрализацию. Сообщение выглядит так и зависит от количества удаленных объектов.django pluralization functional .__ proxy__object вместо verbose_name

успешно удален [количество объектов] Контакт (ы)

Таким образом, выход может быть:

успешно удален 1 Контакт успешно удален 5 Контакты

Для достижения этой задачи я следовал документации плюрализация которые я упоминаемый ниже:

pluralization

Мой код в представлении:

count = returned_objects.count() 
    if count == 1: 
     name = model._meta.verbose_name 
    else: 
     name = model._meta.verbose_name_plural 

    text = ungettext(
     'Successfully deleted %(count)d %(name)s .', 
     'Successfully deleted %(count)d %(name)s .', 
     count 
    ) % { 
     'count': count, 
     'name': name 
    } 
    print text 

Мой код модели:

class Meta: 
     verbose_name = _('contact') 
     verbose_name_plural = _('contacts') 

В результате в настоящее время «успешно удален 1 django.utils.functional. прокси объект в 0x014D9B70"

I`m интересно, почему я не получаю verbose_name в качестве вывода. Вместо этого я получаю django.utils.functional. прокси объект как выход для имени.

ответ

4

Когда ты смотреть на прокси-объекте, вы увидите, что это прокси-объект для струнного типа класса.

Попробуйте использовать model._meta.verbose_name_plural.title(), чтобы получить строку из объекта прокси.

+0

Отлично! Это работает! I'm действительно впечатлил stackoverflow и его сообщество. надежный. Просто отлично :-) Что мне интересно, так почему .title() в документе, на который я ссылался выше, не используется !? –

Смежные вопросы