Django rest framework request vs self.request

в djnago rest framework в чем разница между self.request и request в почему мы не всегда можем использовать request и в каких ситуациях нам нужно использовать self.request или request

class MyView(APIView):

    def post(self, request, format=None):
        data = self.request.data
        login(request, user)

я пытаюсь вывести их, и оба они возвращают одно и то же

<rest_framework.request.Request: POST '/url/sub_url'>

Почему мы такие пользователи

data = self.request.data
login(request, user)

аргумент request передается методу post. как любая обычная функция, которую вы можете определить и использовать ее аргументы.

Но поскольку post является методом, он принимает аргумент self. вы можете получить доступ к методам и атрибутам класса, включая request.

И они одинаковые.

Когда request передается в вашу функцию, просто используйте request, но если нет и вам нужен запрос, используйте self.request.

Если вы используете представления на основе функций, вы не сможете использовать self.request. Здесь, поскольку вы используете представления, основанные на классах, вы можете получить доступ к нему обоими способами.

Вернуться на верх