如何解决 .accepted_renderer 未在 Django 中的响应错误上设置
Posted
技术标签:
【中文标题】如何解决 .accepted_renderer 未在 Django 中的响应错误上设置【英文标题】:How to solve .accepted_renderer not set on Response Error in Django 【发布时间】:2021-07-17 20:30:20 【问题描述】:我是 django 的新手,我必须在我的项目中使用它。因此,队友使用 Docker 容器创建微服务。我必须调用这些微服务来执行文本字段中写入的文本。 为此,我编写了一个 views.py 文件,但是当我尝试编写一个句子并调用这些微服务时,它给了我一个 AssertionError .accepted_renderer not set on Response error。
views.py
def link1(request):
if request.method == "POST":
url = 'http://localhost:5000/sentiment/'
payload = 'text':request.POST.get("response")
response = json.dumps(requests.post(url, data = payload).text)
return Response (response)
return render(request, 'blog/links/Link1.html')
Link1.py
<form class="text" method="POST"action="% url 'duyguanalizi' %">
% csrf_token %
<label for="textarea">
<i class="fas fa-pencil-alt prefix"></i> Duygu Analizi
</label>
<h2>Kendi Metniniz ile Test Edin...</h2>
<input class="input" id="textarea" type="text" name="text">
</input>
<button type="submit" class="btn" name="submit" onclick="submitInfo()" >Dene</button>
</form>
% if input_text %
<label >Sonuç </label>
<p name ="input_text" id="input_text"><strong> response </p>
% endif %
这是我的全部错误:
请求方法:POST 请求 URL:http://127.0.0.1:8000/duyguanalizi/ Django 版本:3.0.5 异常类型:AssertionError 异常值: .accepted_renderer 未在响应异常上设置 位置:C:\Users\Asus\AppData\Local\Programs\Python\Python39\lib\site-packages\rest_framework\response.py 在渲染内容中,第 55 行 Python 可执行文件:C:\Users\Asus\AppData\Local\Programs\Python\Python39\python.exe Python 版本:3.9.1
【问题讨论】:
【参考方案1】:你需要设置@api_view(['POST'])
装饰器。
@api_view(['POST'])
def link1(request):
...
另外,你不需要json.dumps(response)
,有response.json()
。
【讨论】:
我不明白。你说“你不需要json.dumps(response)
,有response.json()
”是什么意思。 @SimeonAleksov以上是关于如何解决 .accepted_renderer 未在 Django 中的响应错误上设置的主要内容,如果未能解决你的问题,请参考以下文章