我正在尝试创建一条使用某种复数形式的消息。消息如下所示,取决于已删除对象的数量。
已成功删除 [对象数量] 个联系人
因此输出可以是:
已成功删除 1 个联系人 成功删除5个联系人
为了完成这项任务,我遵循了下面引用的多元化文档:
我在 View 中的代码:
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 object at 0x014D9B70”
我想知道为什么我没有得到 verbose_name 作为输出。相反,我将 django.utils.functional.proxy 对象作为名称的输出。
最佳答案
当您查看代理对象时,您会发现它是类字符串类的代理对象。
尝试使用 model._meta.verbose_name_plural.title()
从代理对象中获取字符串。
关于django 复数化 functional.__proxy__object 而不是 verbose_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980186/