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. Здесь, поскольку вы используете представления, основанные на классах, вы можете получить доступ к нему обоими способами.