Django-translations не возвращает переводы моделей на DRF
У меня есть проект, настроенный с помощью django 3.2.5 и drf 3.14.0 на python 3.6 и postgres 9.6. Я выполнил следующие шаги, чтобы создать переводимую модель для модели обучающих продуктов. использование этой библиотеки для перевода здесь.
from translations.models import Translatable
class LearningProduct(Translatable):
title = models.CharField(
_("Title"),
max_length=255,
unique=True
)
description = models.TextField(
_("Description"),
blank=True,
null=True
)
image = models.ImageField(
_("Image"),
upload_to="uploads/images/learning_products/%Y/%m/%d",
max_length=255,
blank=True,
null=True
)
link = models.URLField(
_("Link"),
blank=True,
null=True
)
class Meta:
db_table = "learning_product"
verbose_name = _("Learning Product")
verbose_name_plural = _("Learning Products")
class TranslatableMeta:
fields = ['title', 'description', 'link']
def __str__(self):
return self.title
добавили его в панель администратора следующим образом:
from translations.admin import TranslatableAdmin, TranslationInline
class LearningProductAdmin(TranslatableAdmin):
inlines = [TranslationInline]
admin.site.register(LearningProduct, LearningProductAdmin)
это позволяет мне сохранить переводы модели для указанных полей. у меня есть два языка, установленные в настройках как:
## Translation settings.
LANGUAGES = (
('en', _('English')),
('ne', _('Nepali')),
)
У меня apiview настроен следующим образом, и он позволяет мне получить модель, когда не передается язык принятия, а также когда в качестве языка принятия передается En
, но я сталкиваюсь с ошибкой, приведенной ниже, когда я пытаюсь получить метод с языком принятия Ne
.
views.py
# views.py
from rest_framework import generics
from core.models import LearningProduct
class LearningProductSerializer(serializers.ModelSerializer):
"""
Class to serialize Learning Product data types.
"""
class Meta:
model = LearningProduct
fields = '__all__'
class LearningProductListView(generics.ListAPIView):
queryset = LearningProduct.objects.all()
serializer_class = LearningProductSerializer
def get_queryset(self):
queryset = super(LearningProductListView, self).get_queryset()
return queryset.translate_related(
'title',
'description',
'link',
).translate()
ошибка:
TypeError: abc is neither a model instance nor an iterable of model instances.