I've several times found myself in the situation of writing separate 
serializers for creating objects. it's in cases where I have a field that 
is not quite `read_only`, not quite `write_only`. A better definition would 
be `create_only`.

An example (which is a bit lame) could be when i create a new `Person`. The 
`PersonSerializer` has `read_only` fields `mother` and `father`, which are 
other `Person`s that are serialized.

What I usually do is to have `mother_id` and `father_id` fields as well, 
which are `write_only`, to avoid having to supply the complex data 
structures for whole `Person`s instead of just the `id`.

But I don't want to be able to change those after creation, as it's doesn't 
make (biological) sense to change parents once you're born. I could check 
that these don't change in the `update` method of the `PersonSerializer`, 
but that's tedious work.

so I always end up writing a separate `NewPersonSerializer` with the 
`mother_id` and `father_id` fields, which is used for creating new 
`Person`s.

So what i'm sort of missing is a `create_only` field -- a writable field 
that is only available for creating objects. Has that ever been discussed? 
Would it make sense to implement? Or is there a better way to achieve what 
i'm trying to do in a single serializer, other than doing the previously 
mentioned check in `update`?

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to