Django中的ugettext和ugettext_lazy

发布于 2021-01-29 18:57:49

您能解释一下ugettextugettext_lazy的主要区别是什么。

当我尝试

return HttpResponse(ugettext_lazy("Hello"))

我什么都没看见,但是

return HttpResponse(ugettext("Hello"))

正在工作。

为什么?

谢谢。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    ugettext用来加载一个字符串的解释现在。 ugettext_lazy返回一个最终可以转换为字符串的对象。如果在ugettext_lazy设置正确的语言环境之前对呼叫进行了评估,则需要此设置。

    ugettext_lazy可以在使用Unicode对象的地方使用。仔细检查您的HTML输出,看起来可能像这样:

    <django.utils.functional...>
    

    浏览器将其忽略为无法识别的标签。

    在这种情况下,您不需要延迟翻译,因为您将立即使用字符串。如果您出于某些原因确实想要继续使用ugettext_lazy,请尝试以下操作:

    return HttpResponse(ugettext_lazy("Hello").encode('utf-8'))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看