Интеграция переводов в админ-панель
Django-parler легко интегрируется с админ-панелью Джанго. Он включает класс TranslatableAdmin, который переопределяет класс ModelAdmin, предоставленный Джанго для управления переводом моделей.
Отредактируйте файл admin.py приложения shop и добавьте в него следующий импорт:
from parler.admin import TranslatableAdmin
Измените классы CategoryAdmin и ProductAdmin на наследование от TranslatableAdmin вместо ModelAdmin. Django-parler еще не поддерживает атрибут prepopulated_fields, но он поддерживает метод get_prepopulated_fields(), предоставляющий те же функциональные возможности. Теперь файл admin.py должен выглядеть следующим образом:
from django.contrib import admin
from .models import Category, Product
from parler.admin import TranslatableAdmin
class CategoryAdmin(TranslatableAdmin):
list_display = ['name', 'slug']
def get_prepopulated_fields(self, request, obj=None):
return {'slug': ('name',)}
admin.site.register(Category, CategoryAdmin)
class ProductAdmin(TranslatableAdmin):
list_display = ['name', 'slug', 'category', 'price', 'stock', 'available', 'created', 'updated']
list_filter = ['available', 'created', 'updated', 'category']
list_editable = ['price', 'stock', 'available']
def get_prepopulated_fields(self, request, obj=None):
return {'slug': ('name',)}
admin.site.register(Product, ProductAdmin)
Мы адаптировали админ-панель для работы с новыми переведенными моделями. Теперь можно синхронизировать базу данных с внесенными изменениями модели.