Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

232
Visualizações
Django REST Framework - serializer in many to many relationship

models.py

from django.db import models
from django.contrib.auth.models import User

class Element(models.Model):
    name = models.CharField(max_length=20)

class Group(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=100)
    elements = models.ManyToManyField(Element)
    class Meta:
        unique_together = ('user', 'name')

serializers.py

class ElementSerializer(serializers.HyperlinkedModelSerializer):
# group = serializers.ReadOnlyField(source='group.id')
    class Meta:
        model = Element
        fields = ('name')

""" def save(self, group=None, *args, **kwargs):
    if group is not None:
        self.group = group
    super(ElementSerializer, self).save(*args, **kwargs) """

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    elements = ElementSerializer(many=True)
    class Meta:
        model = Group
        fields = ('url', 'name', 'elements')

views.py

class AddElement(APIView):

    def get(self, request, pk, format=None):
        serializer = ElementSerializer(context={'request': request})
        return Response(serializer.data, status=status.HTTP_200_OK)

    def post(self, request, pk):
        group = DBHandler.get_group_from_id(pk)
        serializer = ElementSerializer(data=request.data, context={'request': request})
        if not serializer.is_valid():
            return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST)
        serializer.save()
        # serializer.save(group = group)

        return Response({}, status=status.HTTP_201_CREATED)

In my view, I'd like to create an Element from given data, then assign this Element to existing Group.

I tried passing group as a serializer save parameter, and it worked okay (commented code), but I don't know where to go next. How can I get an Element instance from ElementSerializer? Or is there another way of working this out?

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda