假设我有一个自定义Django Middleware
,如果未返回rest_framework Response
,则该请求的请求标头具有jwt令牌。
middleware.py
@staticmethod
def process_view(request, view_func, view_args, view_kwargs):
try:
jwt_token = request.headers["token"]
except KeyError:
response = Response(status=status.HTTP_403_FORBIDDEN)
return response
但是我遇到了
这样的错误.accepted_renderer未在响应上设置
如何在此处执行内容协商?
答案 0 :(得分:0)
我认为您正在使用DRF's Response
class。
您应该将Django's HttpResponse
class用作
{% extends "blog/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content-section">
<form enctype="multipart/form-data method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">ブログ投稿</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">投稿</button>
</div>
</form>
</div>
{% endblock content %}
我不确定此方法是否 好 或 坏 ,但是效果很好。 / p>
创建一个虚拟视图,该视图返回 # middleware.py
from django.http.response import HttpResponse
@staticmethod
def process_view(request, view_func, view_args, view_kwargs):
try:
jwt_token = request.headers["token"]
except KeyError:
response = HttpResponse(status=403)
return response
,并使用它返回响应。
DRF Response