在 Django 中向模型实例添加翻译
pythonserver side programmingprogramming
在本文中,我们将学习如何为任何实例创建翻译。有时,您可能需要保存数据,如 ID、名称、引号、行等。您可能需要以不同的语言呈现这些数据;为此,您需要做很多数据库工作,但今天我将向您展示如何仅用几行设置即可获得相同的结果。
创建一个 Django 项目和一个应用程序。设置 urls 并执行一些基本操作,例如在 INSTALLED_APPS 中添加应用程序。
创建一个模型。在这里,我们与 views.py、urls.py 或任何 html 文件没有太多关系。我们只处理 settings.py、admin.py、 models.py 和 admin 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/