【问题标题】:django pluralization functional.__proxy__object instead of verbose_namedjango 复数functional.__proxy__object 而不是verbose_name
【发布时间】:2009-12-30 13:24:16
【问题描述】:

我正在尝试创建一个使用某种复数形式的消息。消息如下所示,取决于已删除对象的数量。

已成功删除 [number of objects] 联系人

因此输出可以是:

已成功删除 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.proxy 对象,位于 0x014D9B70”

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

【问题讨论】:

    标签: django


    【解决方案1】:

    当您查看代理对象时,您会发现它是类字符串类的代理对象。

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

    【讨论】:

    • 完美!这行得通!我m really impressed about stackoverflow and its 社区。如此快速和可靠。太好了:-) 我想知道的是为什么我上面提到的文档中的 .title() 没有被使用!?
    猜你喜欢
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2018-09-07
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多