Django 数据库中数据的转换
我在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
类日志(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功能?