【问题标题】:How to call a Django Rest API with authentication from a Django View如何通过 Django 视图的身份验证调用 Django Rest API
【发布时间】:2020-08-27 20:01:27
【问题描述】:

我有一个 django rest API,它为某些真实用户提供学生列表。它需要从 django 视图中调用。 目前我在 get_context_data 中使用带有令牌身份验证的请求库,如下所示:

import requests
def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    token,created = Token.objects.get_or_create(user=self.request.user)
    reverse_url = 'http://127.0.0.1:8000/api/students/'
    response = requests.get(
         reverse_url,
        headers={'Authorization': 'Token {}'.format(token)}
    )
    context['object'] = response.json()
    return context

这是正确的做法吗 谢谢

【问题讨论】:

标签: python django django-rest-framework python-requests


【解决方案1】:

正如 eugene 在评论中提到的那样,调用视图函数而不是网络请求是一种更好的方法。

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    response = LessonViewSet.as_view({'get': 'retrieve'})(
        request=self.request,
        pk=kwargs['pk']
    ).data
    context['object'] = response
    return context

【讨论】:

    猜你喜欢
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2012-03-17
    • 2019-06-20
    • 2017-12-31
    • 2013-05-03
    相关资源
    最近更新 更多