Django 数据库中数据的转换

Django 数据库中数据的转换,django,django-models,django-templates,translation,Django,Django Models,Django Templates,Translation,我在Django应用程序中实现了一个日志系统,这个系统,因为任何用户的每个操作都会将信息保存在数据库中。模型如下: 类日志(models.Model): user=models.ForeignKey(to=user,on_delete=models.PROTECT) log=models.CharField(最大长度=255) 类型=型号.CharField(最大长度=50) 日期=型号。日期时间字段(自动\u现在\u添加=真) company=models.ForeignKey(to=comp

我在Django应用程序中实现了一个日志系统,这个系统,因为任何用户的每个操作都会将信息保存在数据库中。模型如下:

类日志(models.Model):
user=models.ForeignKey(to=user,on_delete=models.PROTECT)
log=models.CharField(最大长度=255)
类型=型号.CharField(最大长度=50)
日期=型号。日期时间字段(自动\u现在\u添加=真)
company=models.ForeignKey(to=company,on_delete=models.PROTECT)
我的观点是关于日志字段的转换。例如,我的语言是英语,它将保存在数据库中“确实创建了一个新客户”,但如果我用法语更改语言,我显然会再次使用英语。 同样,如果一个法国人创建了一个日志,我将有一些法语日志,其他的英语日志。 我的问题是这个日志字段有数百种不同的可能性

Django是否可以像使用{%translate%}标记一样在模板中转换来自数据库的数据

我在想,在翻译文件中有上百种可能性,Django直接在模板中翻译

我的权限名称也有同样的问题。用户可以向其他用户授予权限,但这些权限名称是英文的


感谢您的帮助

是-Django对此有一个内置的方法
.gettext()
,如文档中所述:

这将把字符串翻译成最终用户的语言。您可以在模板或模型中使用它

要在模板中使用它,请执行以下操作:

<!-- load i18n -->
{% load i18n %} 

<!-- translate text -->
<title>{% translate "This is the title." %}</title>

<!-- translate string variable passed from context -->
<title>{% translate myvar %}</title>

{%load i18n%}
{%translate“这是标题。”%}
{%translate myvar%}
在模板中,
translate
对引擎盖下的字符串调用
.gettext()

希望这有帮助;)

额外信息:

Django的
LocaleMiddleware
将尝试检测它翻译成哪种语言(通过各种技术,您可以在文档链接上阅读)


但是,如果中间件无法检测到最终用户需要哪种语言,它将使用
settings.py
language\u code
变量中指定的语言。这是Django将翻译成的默认语言。

使用google translate api1。您希望保存在日志字段中的信息自动转换吗?2.您要保存的字符串是由用户编写的,还是您的系统已准备好的字符串?您能否解释如何使用此特定示例选择目标语言?它将被转换为用户浏览器中指定的相同语言。或者,进入
settings.py
并在变量
language\u code
language\u code=“de”
)中设置您的语言代码,以查看正在执行的翻译我的问题是关于如何“强制”的不考虑我的bowser/my location或任何语言环境,将输出为某种语言?删除
LocaleMiddleware
(检测翻译语言环境的中间件)(
'django.middleware.locale.LocaleMiddleware'
),然后在
语言\u code
变量中设置要翻译的默认语言。这应该就够了。别再提浏览器了。如何在独立函数中使用Django的translate功能?