pass ajax data to django model with many to many relationship

I’ve been working on this for a while and Im stumped. I’ve been reading through the docs…

https://www.django-rest-framework.org/api-guide/relations/#nested-relationships

and still cant make sense of how this is supposed to work.

If someone could help me solve this error or explain how this is supposed to work I would be very happy to get some help. Thanks

What I want:

  1. send ajax to django rest framework api endpoint
  2. have django / DRF save many-to-many related data in postgreSQL db

What I’ve got:

TypeError: Session() got an unexpected keyword argument ‘pose_list’

models.py

class Pose(models.Model):     name = models.CharField(max_length=100, blank=False, default='')      def __str__(self):         return self.name  class SeshPoseList(models.Model):     order = models.PositiveIntegerField()     pose_fk = models.ForeignKey(Pose, on_delete=models.CASCADE)  class Session(models.Model):     session_name = models.CharField(max_length=100, blank=False, default='')      def __str__(self):         return self.name 

serializers.py

class PoseSerializer(serializers.ModelSerializer):          class Meta:         model = Pose         fields = ('id', 'name')  class SeshPoseListSerializer(serializers.ModelSerializer):      def create(self, validated_data):         return Session.objects.create(**validated_data)      class Meta:         model = SeshPoseList         fields = ['order', 'pose_fk']  class SessionSerializer(serializers.ModelSerializer):     pose_list = SeshPoseListSerializer(many=True)      def create(self, validated_data):         return Session.objects.create(**validated_data)      class Meta:         model = Session         fields = ('id', 'session_name', 'pose_list') 

views.py

@api_view(['GET', 'POST', 'PUT', 'DELETE']) def session_list(request):     if request.method == 'POST':         seshSerializer = SessionSerializer(data=request.data)         if seshSerializer.is_valid():             seshSerializer.create(seshSerializer.validated_data)             return Response(seshSerializer.data, status=status.HTTP_201_CREATED)         print("sesh errors --->  ", seshSerializer.errors)         return Response(seshSerializer.errors, status=status.HTTP_400_BAD_REQUEST) 
Add Comment
0 Answer(s)

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.