title: best way to add additional fields to django-rest-framework ModelViewSet when create
body: <p>I have a Book model with a foreign key to user (the owner of the book):</p>
  
  <pre><code>class Book(models.Model):
      owner = models.ForiegnKey(User)
      ...
  </code></pre>
  
  <p>I've created a ModelViewSet for Book which shows the books owned by the logged in user:</p>
  
  <pre><code>class BookViewSet(viewsets.ModelViewSet):
      model = Book
      serializer_class = BookSerializer
      def get_queryset(self):
          return Book.objects.filter(owner=self.request.user)
  </code></pre>
  
  <p>Now to create a new book, I want to save user field with request.user, not with data sent from the rest client (for more security). for example:</p>
  
  <pre><code>def create(self, request, *args, **kwargs):
      request.DATA['user'] = request.user
      ... (some code to create new Book from request.DATA using serialize class)
  </code></pre>
  
  <p>but I got this error:
  This QueryDict instance is immutable. (means request.DATA is a immutable QueryDict and can't  be changed)</p>
  
  <p>Do you know any better way to add additional fields when creating an object with django rest framework?</p>