Django REST Framework (DRF): Set current user id as field value

In new DRF you can write

owner = serializers.HiddenField(
    default=serializers.CurrentUserDefault()
)

See http://www.django-rest-framework.org/api-guide/validators/#currentuserdefault


I don't think you're using the serializer properly. A better practice to set request related data is to override perform_create in your view:

def perform_create(self, serializer):
    serializer.save(author=self.request.user)

def perform_update(self, serializer):
    serializer.save(author=self.request.user)

and then set your author serializer to read-only:

author = UserMiniSerializer(read_only=True)

this way you can simply use one single NewsSerializer for both read and write actions.