title: Serialization error: Incorrect type. Expected pk value, received Post
body: <p>I'm trying to create an object with nested serialization so other objects that relate to it are also created. I've overridden the <strong>create()</strong> method for ModelSerializer and the main object is created successfully. </p>
  
  <pre><code>    def create(self, validated_data):
          post_data = validated_data.pop('post_set')
          big_post = BigPost.objects.create(**validated_data) // This works
          for post in post_data:
              e = PostSerializer(data=post)
              if e.is_valid():
                  e.save()
              else:
                  print(e.errors) // Prints 'Incorrect type' error
          return big_post
  </code></pre>
  
  <p>However, when trying to create the nested object (Post), I get this error:</p>
  
  <blockquote>
    <p>{'note': ['Incorrect type. Expected pk value, received Note.']}</p>
  </blockquote>
  
  <p>'note' is a field of the PostSerializer as shown below:</p>
  
  <pre><code>class PostSerializer(serializers.ModelSerializer):
      class Meta:
          model = Post
          fields = ('id', 'note', 'title', 'description')
  </code></pre>
  
  <p>I am aware that default behaviour of ModelSerializer is to create PrimaryKeyRelatedField for any related fields of the model. But, I don't know why an instance is being created when the data submitted is just a PK like so: {"note":3, ....}</p>