在 Django 模型例項中新增翻譯
在這篇文章中,我們將學習如何為任何例項建立翻譯。有時,您可能需要儲存諸如 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)
# define field that will be translated
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** 並新增 **klingon** 翻譯引用到 admin 中。
現在,所有操作都完成了。讓我們檢查輸出。
輸出
執行 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/

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP