django复数功能.__ proxy__object而不是verbose_name

时间:2009-12-30 13:24:16

标签: django

我试图创建一个使用某种复数的消息。消息看起来像这样,取决于已删除对象的数量。

已成功删除[对象数量]联系人

因此输出可以是:

已成功删除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”

我想知道为什么我没有将verbose_name作为输出。相反,我得到django.utils.functional。代理对象作为名称的输出。

1 个答案:

答案 0 :(得分:4)

当您查看代理对象时,您将看到它是类似字符串类的代理对象。

尝试使用model._meta.verbose_name_plural.title()从代理对象中获取字符串。