Сериализация модели с внешним ключом Django - PullRequest
0 голосов
/ 11 октября 2019

У меня есть следующий json: Json result Проблема с ним - поле 'tipo_envase', идентификатор которого возвращается в моем json, но мне не нужен идентификатор, а весь объектэто связано с tipo_envase, который в основном это json: tipo_envase json Я пытался сериализовать модели таким образом

 class TipoEnvaseSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tipoenvase
        fields = ('id','nombre')


class PresentationSerializer(serializers.ModelSerializer):

    class Meta:
        model = Presentation
        fields = ('nombre','capacidad','tipo_envase')

И вот эти модели:

  class Presentation(models.Model):
    nombre = models.CharField(max_length=100)
    capacidad = models.CharField(max_length=100)
    tipo_envase = models.ForeignKey('Tipoenvase', on_delete=models.CASCADE)

    def __str__(self):
        return self.nombre + " " + self.capacidad + " " + self.tipo_envase.nombre

class Tipoenvase(models.Model):
nombre = models.CharField(max_length=100)

def __str__(self):
    return self.nombre

В итоге требуется следующая структура json:

`{
"nombre":"Frasco"
"capacidad":"410 gr"
"tipo_envase":{
"id":"1"
"nombre":"vidrio"

}


}`

1 Ответ

0 голосов
/ 11 октября 2019

Сериализаторы можно вкладывать:

class PresentationSerializer(serializers.ModelSerializer):
    tipo_envase = TipoEnvaseSerializer()
    class Meta:
        model = Presentation
        fields = ('nombre','capacidad','tipo_envase')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...