Tengo una pregunta sobre el uso de ugettext y ugettext_lazypara las traducciones. Aprendí que en los modelos debería usar ugettext_lazy, mientras que en las vistas ugettext. ¿Pero hay otros lugares, donde debería usar ugettext_lazytambién? ¿Qué pasa con las definiciones de formulario? ¿Hay alguna diferencia de rendimiento entre ellos?
Editar:
Y una cosa más. A veces, en lugar de ugettext_lazy, ugettext_noopse usa. Como dice la documentación, las ugettext_noopcadenas solo están marcadas para traducción y traducidas al último momento posible antes de mostrarlas al usuario, pero estoy un poco confundido aquí, ¿no es eso similar a qué ugettext_lazyhacer? Todavía es difícil para mí decidir qué debo usar en mis modelos y formularios.
fuente

msg = "An error has occurred"; logging.error(msg);return HttpResponse(_(msg))? why need_noop?si sin_noop, django no encuentra que la cadena necesita traducción?_noop?Un excelente uso de _noop es cuando desea registrar un mensaje en inglés para los desarrolladores, pero presentar la cadena traducida a un visor. Un ejemplo de esto está en http://blog.bessas.me/posts/using-gettext-in-django/
fuente
La versión diferida devuelve un objeto proxy en lugar de una cadena y en alguna situación no funcionaría como se esperaba. Por ejemplo:
fallaría porque la última línea intentaría serializar el objeto lst en JSON y en lugar de una cadena para "cliente" tendría un objeto proxy. El objeto proxy no se puede serializar en json.
fuente