我试图创建一个使用某种复数的消息。消息看起来像这样,取决于已删除对象的数量。
已成功删除[对象数量]联系人
因此输出可以是:
已成功删除1个联系人 已成功删除5个联系人
为了完成这项任务,我遵循了下面引用的复数文档:
我在视图中的代码:
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。代理对象作为名称的输出。
答案 0 :(得分:4)
当您查看代理对象时,您将看到它是类似字符串类的代理对象。
尝试使用model._meta.verbose_name_plural.title()
从代理对象中获取字符串。