【发布时间】:2017-12-27 21:55:19
【问题描述】:
当我通过 @api_view 装饰器创建新的 API 视图时,我在查看来自请求的传入自定义标头时遇到问题。
我的自定义 API 视图如下所示:
@api_view(['GET'])
def TestView(request):
print(request.META)
return Response({'message': 'test'})
我期待的是做类似的事情
curl --request GET \
--url http://localhost:8000/test \
--header 'custom: test'
我会看到名为custom 的自定义标头出现在输出中。相反,它根本不存在。从文档中,它对 request.META 字段表示以下内容:
A dictionary containing all available HTTP headers. Available headers depend on the client and server, but here are some examples:
然而,它们根本没有出现在我的输出中。我在这里遗漏了什么吗?
如果相关,我会这样注册我的网址:
urlpatterns = [url(r'test', views.TestView, name='test'), ...]
我的最终目标是编写一个自定义权限类,该类将解析自定义标头并使用它执行与身份验证相关的操作,并允许或拒绝请求。我在这里的 POC 只是为了展示我正在处理的基本示例。我可以提供print(request.META) 的输出,但它只是一堵没有我预期标题的文本墙。
【问题讨论】:
-
错了。不是重复的,我在我的问题中明确声明我知道如何访问标题并且它不存在。
-
@rosenthal,重复并不坏,至少对我来说不是。我什至写了一个答案(你好心地选择了,很感激)即使我是重复的。至少对我来说,它们只是表达“嘿,这里可能有更多信息” :)
-
留下我的评论,不想删除它。我错了,老实说,它是重复的,并且有时提醒自己要检查自己。
标签: python django django-rest-framework