Каков наилучший способ получить различный вывод для разных методов запроса в django REST API? - PullRequest
0 голосов
/ 20 сентября 2018

Итак, у меня есть модель, скажем, с полями 'field1' и 'field2'.И мне нужно получить следующие результаты в зависимости от используемого метода запроса:

http POST http://127.0.0.1:8000/app 'someinput'
> {'field1': 'content1'}

http GET http://127.0.0.1:8000/app/1
> {'field1' : 'content1', 'field2': 'content2'}

Я думаю, это как-то связано с методом to_representation() сериализатора?но я не могу понять, как я могу проверить, был ли метод, который вызвал to_representation(), 'POST' или 'GET'.

1 Ответ

0 голосов
/ 20 сентября 2018

Не очень понятно, если вы хотите иметь разные выходные данные для POST и GET для одной и той же конечной точки.

Потому что, как написано, у вас есть 2 разных конечных точки для GET и POST в вашем примере - такв этом случае вы просто создаете 2 разных сериализатора и используете его соответствующим образом.

Если у вас одинаковая конечная точка, вы можете переопределить следующий метод в своем представлении:

def get_serializer_class(self):

    if self.request.method  == 'GET':
        return <your get serializer class>

    return < your post serializer class >
...