title: PUT request using Django serializer
body: <p>I have an architecture in a way that when user registers, his/her settings are initialized. So we need GET and PUT to get or update the settings respectively on settings API.</p>
  
  <p>I am using model serializers of django rest framework for storing and getting the settings. It works well in giving response but it doesn't save that to models.</p>
  
  <p><strong><code>serializers.py</code></strong></p>
  
  <pre><code>class UserSettingsSerializer(serializers.ModelSerializer):
  
      class Meta:
          model = UserSettings
          fields = ('group_notifications', 'updates', 'goal_remind_me', 
                    'goal_days', 'goal_time_interval', 'user')
  </code></pre>
  
  <p><strong><code>models.py</code></strong></p>
  
  <pre><code>class UserSettings(models.Model):
  
  class Meta:
      db_table = 'user_settings'
  
  user = models.ForeignKey('User')
  group_notifications = models.BooleanField(default=True)
  updates = models.BooleanField(default=False)
  goal_remind_me = models.BooleanField(default=False)
  goal_days = ListField()
  goal_time_interval = models.IntegerField(null=True)
  </code></pre>
  
  <p><strong><code>views.py</code></strong></p>
  
  <pre><code>def settings(request, pk):
      if request.method == 'PUT':
          request.data['user'] = user.id
  
          serializer = UserSettingsSerializer(data=request.data)
          if serializer.is_valid():
              serializer.save()
              serializer_dict = serializer.data
              serializer_dict["message"] = "Settings updated successfully."
              return Response(serializer_dict, status=status.HTTP_200_OK)
          else:
              return Response(serializer.errors,
                              status=status.HTTP_400_BAD_REQUEST)
  </code></pre>
  
  <p>I get response as expected but it's not storing data in <code>user_settings</code> table and I am using PostgreSql.</p>