可以使用Django内置的翻译API实现对Model对象中指定字段的翻译。具体实现步骤如下:
_(文本)
或_(文本,json)
注释,以告诉Django翻译这些字段:from django.db import models
from django.utils.translation import gettext_lazy as _
class MyModel(models.Model):
title = models.CharField(max_length=200, verbose_name=_('标题'))
body = models.TextField(verbose_name=_('正文'))
data = models.JSONField(verbose_name=_('数据'))
activate()
函数来激活正确的语言环境:from django.utils.translation import activate
activate('en') # 激活英文语言环境
activate('fr') # 激活法语语言环境
from django.utils.translation import gettext as _
my_model = MyModel.objects.get(pk=1)
for field_name in my_model._meta.get_fields():
if isinstance(field_name, (models.TextField, models.JSONField)):
value = getattr(my_model, field_name.name)
translated_value = _(value)
setattr(my_model, field_name.name, translated_value)
注意,上述代码只是一个示例,需要根据具体应用场景进行修改。
完成上述步骤后,即可实现对指定字段的翻译。
下一篇:遍历Django中的字典列表