title: Why serializer.is_valid() is always false in this scenario?
body: <p>I'm trying to Update this model in Django rest-api but I don't get any idea why the serializer is always not valid when I try to Update;</p>
  <p><strong>models.py</strong></p>
  <pre><code>class Profile(models.Model):
      user = models.ForeignKey(MyUser, on_delete=models.CASCADE, to_field='email')
      gender = models.CharField(max_length=20, null=True, blank=True)
      blood_group = models.CharField(max_length=20, null=True, blank=True)
      dept = models.ForeignKey(Department, on_delete=models.CASCADE, to_field='short_name', null=True, blank=True, default=&quot;CSE&quot;)
      program = models.CharField(max_length=20, null=True, blank=True)
      student_id = models.CharField(max_length=20, null=True, blank=True)
      phone = models.CharField(max_length=20, null=True, blank=True)
      photo = models.ImageField(upload_to='Student/Profile/Profile_Photos/', null=True, blank=True)
      address = models.CharField(max_length=100, null=True, blank=True)
      current_semester = models.CharField(max_length=20, null=True, blank=True)
      level = models.IntegerField(null=True, blank=True)
      term = models.IntegerField(null=True, blank=True)
      sec = models.CharField(max_length=20, null=True, blank=True)
      sub_sec = models.CharField(max_length=20, null=True, blank=True)
      complete_cr = models.FloatField(null=True, blank=True)
      sgpa = models.FloatField(null=True, blank=True)
      cgpa = models.FloatField(null=True, blank=True
  </code></pre>
  <p><strong>serializer.py</strong></p>
  <pre><code>class ProfileSerializer(serializers.ModelSerializer):
     
      class Meta:
          model = Profile
          fields = '__all__'
  </code></pre>
  <p><strong>views.py</strong></p>
  <pre><code>
  class ProfileUpdateView(generics.UpdateAPIView):
      model = Profile
      serializer_class = ProfileSerializer
      permission_classes = [IsAuthenticated]
      parser_classes = (MultiPartParser, FormParser)
  
      def post(self, request):
          token = request.headers.get(&quot;Authorization&quot;).split(&quot; &quot;)[-1]
          print(token)
          try:
              token_obj = get_object_or_404(Token,key = token)
              user = token_obj.user
              data =Profile.objects.get(user=user)
              serializer = ProfileSerializer(instance = data, data=request.data)
              if serializer.is_valid():
                  serializer.save()
                  return Response(serializer.data)
              else:
                  return Response({&quot;invalid&quot;})
          except:
              return Response({'failed': _('bad request'),},status = status.HTTP_406_NOT_ACCEPTABLE)
  </code></pre>
  <p><strong>Try to Input data</strong></p>
  <pre><code>{
          &quot;id&quot;: 76,
          &quot;gender&quot;: &quot;Male&quot;,
          &quot;blood_group&quot;: &quot;B+&quot;,
          &quot;program&quot;: null,
          &quot;student_id&quot;: null,
          &quot;photo&quot;: &lt;image&gt;,
          &quot;phone&quot;: null,
          &quot;address&quot;: null,
          &quot;current_semester&quot;: null,
          &quot;level&quot;: null,
          &quot;term&quot;: null,
          &quot;sec&quot;: null,
          &quot;sub_sec&quot;: null,
          &quot;complete_cr&quot;: null,
          &quot;sgpa&quot;: null,
          &quot;cgpa&quot;: null,
          &quot;user&quot;: &quot;mdsoad@gmail.com&quot;
      }
  </code></pre>
  <p>What is the problem?? or there is any easiest way to update for this model??</p>