поэтому мне нужно было иметь поддержку перевода модели для моего API-интерфейса DRF, и я начал использовать django-hvad.Django Rest Framework и Django-Hvad
Кажется, что хорошо работает с моим приложением django, но я получаю некоторые проблемы с DRF APi.
Я пытаюсь создать простой запрос POST, и я получаю сообщение об ошибке:
Accessing a translated field requires that the instance has a translation loaded, or a valid translation in current language (en) loadable from the database
Вот мои модели, сериализаторов и viewsets:
Модель:
class Mission(TranslatableModel):
translations = TranslatedFields(
mission=models.CharField(max_length=255, help_text="Mission name"),
)
def __unicode__(self):
return self.lazy_translation_getter('mission', str(self.pk))
Сериализатор:
class MissionSerializer(serializers.ModelSerializer):
mission = serializers.CharField(source='mission')
class Meta:
model = Mission
Viewset:
class MissionViewSet(viewsets.ModelViewSet):
queryset = Mission.objects.language().all()
serializer_class = MissionSerializer
authentication_classes = (NoAuthentication,)
permission_classes = (AllowAny,)
def get_queryset(self):
# Set Language For Translations
user_language = self.request.GET.get('language')
if user_language:
translation.activate(user_language)
return Mission.objects.language().all()
Кто-нибудь знает, как я могу обойти эту проблему ?? Я также открыт для других предлагаемых приложений, известных на работу, но я очень хотел бы, чтобы этот рабочий
Кстати, если кто-то сталкивается с этим, полная поддержка REST framework 3.1 была включена непосредственно в django-hvad. – spectras