Моя модель:
class Languages(models.Model):
code = models.CharField(max_length=2)
name = models.CharField(max_length=50)
class Translate(models.Model):
lang_code = models.ForeignKey(Languages,related_name = 'translate', on_delete=models.CASCADE)
ncode = models.CharField(max_length=2)
name = models.CharField(max_length=50)
Мой взгляд:
class Languages_List(mixins.ListModelMixin):
queryset = Languages.objects.all()
serializer_class = LanguagesSerializer
def get_queryset(self):
queryset = Languages.objects.all()
lang = self.request.query_params.get('ncode',None)
queryset = queryset.filter(translate__ncode=lang)
return queryset
Мой сериализатор:
class LanguagesSerializer(QueryFieldsMixin,serializers.ModelSerializer):
class Meta:
model = Languages
fields = ('id', 'code','name')
Я могу вернуть результат, отфильтровав мое вложенное полес испанским переводом. мой URL выглядит так:
GET /lang/?ncode=sp
Теперь мой результат:
, когда я фильтрую с использованием испанского, мое имя (английский) должно переводитьсяИспанский, как показано ниже, и вернуть результат без изменения базы данных.Как этого добиться с помощью Django?
{
"id": 4,
"code": "en",
"name": "Inglés",
}