Вот мои простые классы viewset и serializer:
class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = ['id', 'email', 'first_name', 'last_name']
....
class UserViewSet(ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Предположим, я хочу обновить только имя моего пользователя. В этом случае я должен использовать PATCH
{"first_name": "New First Name"}
. Но в то же время, похоже, что PUT
{"first_name": "New First Name"}
также работает так же, хотя и не должно, потому что должно проверять, что все поля указаны. По крайней мере, я так и думал. Я ошибся? И если я, то в чем разница между update
и partial_update
в Django Rest Framework и есть ли причина оставить их обоих (поскольку любой дополнительный метод подразумевает дополнительное тестирование, поэтому последний вопрос немного философский, потому что похоже, что люди находят эту пару PUT / PATCH действительно запутанной). Кстати, я использую djangorestframework==3.8.2
. Спасибо.