likes
comments
collection
share

Django中 “ugettext” 和 “ugettext_lazy” 对比

作者站长头像
站长
· 阅读数 1

Django中 “ugettext” 和 “ugettext_lazy” 对比


Django封装了很多模块API供我们使用, 例如在翻译上提供了 ugettextugettext_lazy 两个方法供我们使用, 他们都在 django.utils.translation 模块文件中, 我们只需要:

fron django.utils.translation import ugettext as _

或者

fron django.utils.translation import ugettext_lazy as _

导入即可使用。

总结两个方法的特性如下:

  • ugettext:预加载的时候调度的翻译方法
  • ugettext_lazy:请求执行的时候调度的翻译方法

那么我们在使用的时候, 两个方法分别推荐在以下模块中使用:

  • ugettext
    • models.py
    • apps.py
    • forms.py
    • settings.py
    • 等其他不需要请求执行, 而是在启动执行的模块中
  • ugettext_lazy
    • views.py
    • 函数封装的.py文件
    • 等其他需要请求一次就需要执行一次的模块中

Django 中很多轮子我们仅仅需要使用即可实现我们需要的功能, 但是还是需要了解其中的特性以及使用方法才可以事半功倍。