Computer >> Máy Tính >  >> Lập trình >> Python

Thêm bản dịch vào một phiên bản mô hình trong Django

Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo bản dịch cho bất kỳ trường hợp nào. Đôi khi, bạn có thể cần lưu dữ liệu như ID, tên, dấu ngoặc kép, dòng, v.v. Bạn có thể phải hiển thị dữ liệu đó bằng các ngôn ngữ khác nhau; đối với điều đó, bạn cần phải thực hiện rất nhiều thứ trong cơ sở dữ liệu, nhưng hôm nay tôi sẽ chỉ cho bạn cách để có được kết quả tương tự chỉ trong vài dòng thiết lập.

Tạo một dự án Django và một ứng dụng. Thiết lập url và thực hiện một số việc cơ bản như thêm ứng dụng trong INSTALLED_APPS.

Tạo một mô hình. Ở đây, chúng tôi không liên quan nhiều đến views.py, urls.py hoặc bất kỳ tệp html nào. Chúng tôi chỉ làm việc với settings.py, admin.py, models.py urlpoint của quản trị viên.

Ví dụ

Cài đặt django-klingon gói -

pip install django-klingon

Trong settings.py, thêm cái này -

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

Tại đây, chúng tôi thực hiện cài đặt cơ bản của việc thêm klingon là một ứng dụng trong dự án và chúng tôi xác định tiếng Anh là ngôn ngữ mặc định của nó.

Tạo một mô hình như thế này -

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')

Ở đây, chúng tôi chỉ đơn giản là tạo ra một mô hình. Điểm cần lưu ý ở đây là chúng tôi đã tạo một trường có thể dịch được, trường này sẽ cho biết trường nào cần được dịch và nó tham chiếu đến đối tượng đã dịch của chúng tôi trong bảng khác.

Trong admin.py, thêm mã sau -

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)

Tại đây, chúng tôi chỉ cần thêm mô hình của mình vào url quản trị thêm kligon tài liệu tham khảo bản dịch trong quản trị viên.

Bây giờ, tất cả đã được thực hiện. Hãy kiểm tra kết quả đầu ra.

Đầu ra

Chạy trình bao Python và thực hiện việc này để thêm bản dịch cho đối tượng mới được tạo -

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','お元気ですか')

Bây giờ, bạn có thể thấy một đối tượng dịch đã được tạo, rõ ràng là bạn có thể thêm đối tượng này thông qua views.py

Tại https://127.0.0.1/admin/

Thêm bản dịch vào một phiên bản mô hình trong Django