Módulo: rest-serializers

En este módulo se encuentran definidos los serializadores para convertir los objetos de la BD en objetos JSON. Utiliza el módulo serializers del Django Rest Framework.

Autores

  • Lautaro Villalón, 12-10427 | Yarima Luciani, 13-10770

Clase ActivoSerializer:

Define la estructura en JSON de un componente activo.

Ejemplo: {'componente': Activo.componente}.

class ActivoSerializer(serializers.ModelSerializer):
    class Meta:
        model = Activo
        fields = ('componente',)
        read_only_fields = ('componente',)

Clase MedicinaSerializer:

Define la estructura en JSON de una medicina.

Ejemplo: {'nombre': Medicina.nombre, 'activo': {'componente': Activo.componente}}.
Nótese que Medicina.activo se serializa con el serializador ActivoSerializer.

class MedicinaSerializer(serializers.ModelSerializer):
    activo = ActivoSerializer()
    class Meta:
        model = Medicina
        fields = ('nombre', 'activo')
        read_only_fields = ('nombre', 'activo')

Clase TweetSerializer:

Define la estructura en JSON de un tweet.

Ejemplo: {'id': Tweet.getId(), 'link': Tweet.link, 'medicina': {'nombre': Medicina.nombre, 'activo': {'componente': Activo.componente}}.
Nótese que Tweet.medicina se serializa con el serializador MedicinaSerializer.

class TweetSerializer(serializers.ModelSerializer):
    medicina = MedicinaSerializer()
    id = serializers.SerializerMethodField()
    class Meta:
        model = Tweet
        fields = ('id','link', 'medicina')
        read_only_fields = ('id','link', 'medicina')
    def get_id(self, obj):
        return obj.getId()