使用DRF后报错:'WSGIRequest' object has no attribute 'data'
时间: 2023-06-22 20:37:06 浏览: 151
这个错误通常是因为您尝试在DRF视图中使用`request.data`属性,但该属性只对`APIView`和`ViewSet`等类视图可用,对于基于函数的视图(如`@api_view`装饰器定义的视图)则不适用。
要解决此问题,您可以尝试使用`RequestContext`将请求对象传递给您的函数视图,然后使用`request.POST`或`request.FILES`来访问请求数据。或者,您可以将您的函数视图转换为类视图。
例如,使用`RequestContext`的示例代码如下:
``` python
from django.shortcuts import render
from rest_framework.decorators import api_view
@api_view(['POST'])
def my_view(request):
if request.method == 'POST':
# 将请求对象传递给模板
return render(request, 'template.html', {'request': request})
```
然后在模板中可以使用`request.POST`或`request.FILES`来访问请求数据:
``` html
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ request.FILES }}
<button type="submit">提交</button>
</form>
```
希望这可以帮助您解决问题。
阅读全文