Modelo Original
models.py
class Person(TimeStampedModel):
""" Modelo para registrar personas de una agenda """
full_name = models.CharField(
'Nombres',
max_length=50,
)
job = models.CharField(
'Trabajo',
max_length=30,
blank=True
)
email = models.EmailField(
blank=True,
null=True
)
phone = models.CharField(
'telefono',
max_length=15,
blank=True,
)
hobbies = models.ManyToManyField(Hobby)
class Meta:
verbose_name = 'Persona'
verbose_name_plural = 'Personas'
def __str__(self):
return self.full_name
Construimos un modelo en el serializer
serializer.py
class PersonaSerializer(serializers.Serializer):
id = serializers.IntegerField()
full_name = serializers.CharField()
job = serializers.CharField()
email = serializers.CharField()
phone = serializers.CharField()
views.py
from .models import Person,Reunion
#
from .serializer import (
PersonSerializer,
PersonaSerializer,
)
class PersonApiLista(ListAPIView):
# serializer_class= PersonaSerializer
serializer_class= PersonaSerializer
def get_queryset(self):
return Person.objects.all()
urls.py
path(
'api/personas/',
views.PersonApiLista.as_view(),
name=''
),
Añadir un aartirbuto que no este presente en el modelo
seriallizers.py
class PersonaSerializer(serializers.Serializer):
id = serializers.IntegerField()
full_name = serializers.CharField()
job = serializers.CharField()
email = serializers.CharField()
phone = serializers.CharField()
activo = serializers.BooleanField(default=False) #required=False

-----------------------Portafolio Apartado EXTRA----------------------------------
serializers.py
class ProjectSerializer(serializers.ModelSerializer):
class Meta:
model=Project
fields=(
'id',
'title',
'description',
'image',
'tags',
'category',
)
class TagSerializer(serializers.ModelSerializer):
class Meta:
model = Tag
fields = ['id', 'name', 'active', 'created', 'updated']
class Project2Serializer(serializers.Serializer):
id = serializers.IntegerField()
title = serializers.CharField()
description = serializers.CharField()
image = serializers.CharField()
tags = TagSerializer(many=True) # Utilizar el serializador de Tag
category = serializers.CharField()
status = serializers.BooleanField(required=False) #default=False
views.py
class Project2ApiLista(ListAPIView):
# serializer_class= PersonaSerializer
serializer_class= Project2Serializer
def get_queryset(self):
return Project.objects.all()
urls.py
path(
'api/proyectos2/',
views.Project2ApiLista.as_view(),
name=''
),
Última modificación: 27 Mar 2024 21:45
No hay comentarios aún
Sé el primero en comentar este artículo