DRF: permita todos os campos na solicitação GET, mas restrinja o POST a apenas um campo

Vamos entender isso por exemplo.

Digamos, eu quero criar a API FileUploader, onde armazenará campos como id, caminho_do_arquivo, nome_do_arquivo, tamanho, proprietário etc. no banco de dados. Veja o modelo de amostra abaixo:

class FileUploader(models.Model):
    file = models.FileField()
    name = models.CharField(max_length=100) #name is filename without extension
    version = models.IntegerField(default=0)
    upload_date = models.DateTimeField(auto_now=True, db_index=True)
    owner = models.ForeignKey('auth.User', related_name='uploaded_files')
    size = models.IntegerField(default=0)

Agora, para APIs, é isso que eu quero:

GET: Quando eu aciono o terminal GET, desejo todos os campos acima para cada arquivo carregado.

POST: Mas para o usuário criar / fazer upload de arquivo, por que ela precisa se preocupar em passar todos esses campos. Ela pode simplesmente carregar o arquivo e, suponho, o serializador pode obter o restante dos campos do FILE carregado.

Searilizer: Pergunta, questão: Criei abaixo o serializador para servir ao meu propósito. Mas não tenho certeza se é o caminho certo para implementá-lo.

class FileUploaderSerializer(serializers.ModelSerializer):
    #overwrite = serializers.BooleanField()
    class Meta:
        model = FileUploader
        fields = ('file','name','version','upload_date', 'size')
        read_only_fields = ('name','version','owner','upload_date', 'size')

    def create(self, validated_data):
        return FileUploader.objects.create(**validated_data)

Viewset para referência:

class FileUploaderViewSet(viewsets.ModelViewSet):
    serializer_class = FileUploaderSerializer
    parser_classes = (MultiPartParser, FormParser,)

    # overriding default query set
    queryset = LayerFile.objects.all()

    def get_queryset(self, *args, **kwargs):
        qs = super(FileUploaderViewSet, self).get_queryset(*args, **kwargs)
        qs = qs.filter(owner=self.request.user)
        return qs

Além disso,outra pergunta é que eu quero que o usuário forneça um parâmetro extra chamado 'substituir' (se o arquivo já existir no servidor).

Não sei como acessá-lo no serializador.

questionAnswers(0)

yourAnswerToTheQuestion