在 Django 中向模型实例添加翻译

pythonserver side programmingprogramming

在本文中,我们将学习如何为任何实例创建翻译。有时,您可能需要保存数据,如 ID、名称、引号、行等。您可能需要以不同的语言呈现这些数据;为此,您需要做很多数据库工作,但今天我将向您展示如何仅用几行设置即可获得相同的结果。

创建一个 Django 项目和一个应用程序。设置 urls 并执行一些基本操作,例如在 INSTALLED_APPS 中添加应用程序。

创建一个模型。在这里,我们与 views.py、urls.py 或任何 html 文件没有太多关系。我们只处理 settings.py、admin.py、 models.pyadmin urlpoint。

示例

安装 django-klingon 包 −

pip install django-klingon

settings.py 中添加此 −

INSTALLED_APPS += ['klingon']
KLINGON_DEFAULT_LANGUAGE = 'en'

在这里,我们进行基本设置,在项目中添加klingon作为应用程序,并将英语定义为其默认语言。

创建一个像这样的模型 −

from django.db import models
from klingon.models import Translatable

# add translatable
class TeacherData(models.Model,Translatable):
   name=models.CharField(max_length=100)
   # first3 simple fields
   ClassTeacherOF=models.CharField(max_length=100)
   Salary=models.CharField(max_length=100)
   a_simple_word=models.CharField(max_length=100)
   # 定义将被翻译的字段
   translatable_fields = ('a_simple_word')

这里,我们只是创建了一个模型。这里要注意的一点是,我们创建了一个可翻译字段,它将告诉需要翻译哪个字段,它是对不同表中翻译对象的引用。

admins.py 中添加以下代码 −

from django.contrib import admin
from .models import TeacherData
from klingon.admin import TranslationInline, create_translations

class TeacherAdmin(admin.ModelAdmin):

   inlines = [TranslationInline]
   actions = [create_translations]

admin.site.register(TeacherData,TeacherAdmin)

在这里,我们只需将模型添加到admin url并在admin中添加kligon翻译参考即可。

现在,一切都完成了。让我们检查一下输出。

输出

运行 Python shell 并执行此操作为新创建的对象 − 添加翻译

In [1]: from formhandlingapp.models import *
In [2]:
data=TeachertData.objects.create(name="ama4",ClassTeacherOF="
10",Salary="33322",a_simple_word="how are you")
In [3]: data.set_translation('jp',
'a_simple_word','お元気ですか')

现在,您可以看到已创建的翻译对象,显然您可以通过以下方式添加它views.py

位于 http://127.0.0.1/admin/


相关文章