如何解决 .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 中的响应错误上设置的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 django 的响应错误中没有设置 .accepted_renderer?

什么是未定义的引用/未解决的外部符号错误,我该如何解决?

什么是未定义的引用/未解决的外部符号错误,我该如何解决?

什么是未定义的引用/未解决的外部符号错误,我该如何解决?

什么是未定义的引用/未解决的外部符号错误,我该如何解决?

什么是未定义的引用/未解决的外部符号错误,我该如何解决?