【发布时间】:2021-03-30 12:06:51
【问题描述】:
我正在翻译我的应用通过 Django Api 发送的一些消息(法语到德语)。我的问题是只有当我输入 LANGUAGE_CODE="de-de" 时翻译才有效。 所以我认为是懒惰翻译的问题。 我找到了 keep_lazy() 装饰器,但是,作为一个真正的 Web 开发人员,我找不到将 keep_lazy() 合并到现有装饰器中的方法。这是我通过 api 请求发送消息的 py 文件(在此处创建文档):
@method_decorator(
reponse_toast_decorator(Toast(message=gettext("Votre nouveau document a été créé.")),
data_field_name="document"),
name="create",
)
这是我的 utils 函数:
def reponse_toast_decorator(toast=None, data_field_name=""):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
response = func(*args, **kwargs)
if not isinstance(toast, Toast):
raise ValueError("L'argument 'toast' doit être une instance de la classe Toast")
if isinstance(response, Response):
if response.status_code == status.HTTP_204_NO_CONTENT:
response.status_code = status.HTTP_200_OK
if response.data is None:
response.data = {}
if not data_field_name:
response.data.update({"toast": toast.data})
return response
response.data = {data_field_name: response.data, "toast": toast.data}
return response
return wrapper
return decorator
作为一个初级网络开发人员,我找不到合并的方法
【问题讨论】:
标签: django translation