Disable temporary nested serializer

11 views
Skip to first unread message

plusmen...@gmail.com

unread,
Jun 17, 2020, 5:55:51 AM6/17/20
to Django users
Hello everyone! I'm new in Django. 
I have a serializer with nested serializer like this: 

 ################ Project Serializer with nested customer serializer ###########################

class ProjectSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(required=False) 
    customer = CustomerSerializer(required=True)

    class Meta: 
        model = Project
        fields = '__all__'
        
    def __init__(self, customer_serializer_included=True, *args, **kwargs):
        super(ProjectSerializer, self).__init__(*args, **kwargs)
        self.customer = CustomerSerializer(required=customer_serializer_included)

########### BillingActivitySerializer that uses Project serializer (without nested serializer) ###########################

class BillingActivitySerializer(serializers.ModelSerializer):
     id = serializers.IntegerField(required=False)
     project = ProjectSerializer(required=True, customer_serializer_included = False)

The problem is that everytime i use the project serializer, also nested serializer are used too. I'd like to exclude the nested serializer. I've try to do this in the __init__ but Django gives always a 400 Bad request

Response: {
  "project": {
    "customer": [
      "This field is required."
    ]
  }
}



Thanks in advance
Reply all
Reply to author
Forward
0 new messages