1

Я не понимаю одну вещь в DRF (или DRFMongoengine).Обновление Django rest (и partial_update) после получения действия

class SomeViewSet(MongoModelViewSet): 

    def get_serializer_class(self): 
     print "ACTION:", self.action 
     return SomeSerializer 

После вызова URL для этого режима просмотра из Curl (или с форматом GET-параметры = JSON), я наблюдаю:

ACTION: retrieve 
[09/Jan/2017 17:19:08] "GET /api/some/?format=json HTTP/1.1" 200 

После вызова с форматом = апи (например, из браузера), я наблюдаю :

ACTION: retrieve 
ACTION: update 
ACTION: partial_update 
ACTION: update 
[09/Jan/2017 17:21:50] "GET /api/some/?format=api HTTP/1.1" 200 73173 

Почему это происходит? Будем очень благодарны за любую помощь.

+0

Что произойдет, если вы вызовете с помощью формата = api из curl? Такое же поведение? –

+0

Да, такое же поведение. –

ответ

1

Это связано с тем, что API-интерфейс, доступный для просмотра, должен получать сериализаторы для отображения форм обновления плюс некоторые разрешения. Как можно определить разные сериализаторы на основе действия, API должен запросить каждый из них.

+0

Спасибо вам большое! :) –

Смежные вопросы