Translatable model fields for Django with admin integration. Uses PostgreSQL JSONField.
- Add application in settings.py
INSTALLED_APPS= (
...
'translatable_fields',
...
)- Specify languages in settings.py
# InternationalizationLANGUAGE_CODE='en'LANGUAGES= (
('en', 'English'),
('ru', 'Русский')
)- Add TranslatableField model fields
fromdjango.dbimportmodelsfromdjango.utils.translationimportugettext_lazyas_fromtranslatable_fields.modelsimportTranslatableFieldclassPosition(models.Model):
...
title=TranslatableField(
verbose_name=_('title')
)
description=TranslatableField(
verbose_name=_('description')
)
...- Create custom model admin form
fromdjangoimportformsfromdjango.contrib.postgres.formsimportJSONFieldfromckeditor_uploader.widgetsimportCKEditorUploadingWidgetfromcareers.models.positionimportPositionfromtranslatable_fields.widgetsimportTranslatableWidgetclassPositionAdminForm(forms.ModelForm):
title=JSONField(widget=TranslatableWidget(widget=forms.TextInput))
description=JSONField(widget=TranslatableWidget(widget=CKEditorUploadingWidget))
classMeta:
model=Positionfields= (
...
'title',
'description',
...
)- Create custom model admin with custom form
fromdjango.contribimportadminfromcareers.forms.admin.positionimportPositionAdminFormclassPositionAdmin(admin.ModelAdmin):
form=PositionAdminForm