Earlier quoted context omitted.
You may want to expose some fields that you don't allow changing, such as what account owns the resource. When fields are writable by default, it is easy for someone to miss that they've made a field writable when they just meant to expose it for reading.
I think it's better to define field specific read/write permissions through the serializers. In the serializer's Meta class, you can define a readonly_fields tuple containing the string names of the read only fields
url(
r'path/$',
TheModelViewSetView.as_view({"get": "list"}),
name="thename"
)
or "retrieve" instead of "list" for a route which includes PK.This of course makes the entire path read-only so it's not a way to make some fields writable and others not.