我正在开发这个Android应用程序,它将图像上传到我在django上开发的网站。
我已使用django-rest-framework
创建此api以上传文件。现在我需要使用Forms来保存图像(参见下面的代码)
@api_view(['GET', 'POST'])
def create_image(request):
ImageModel = get_image_model()
ImageForm = get_image_form(ImageModel)
if request.user.is_authenticated():
if request.method == 'POST':
image = ImageModel(uploaded_by_user=request.user)
form = ImageForm(request.POST, request.FILES, instance=image)
if form.is_valid():
image.file_size = file.size
form.save()
但是它给出了错误CSRF verification failed. Request aborted.
我已经尝试了@csrf_exempt
,但仍然是同样的错误。
当我重新阅读Django-rest-framework的文档时,我发现THIS说:
请注意,如果使用mod_wsgi部署到Apache,则默认情况下不会将授权标头传递给WSGI应用程序,因为假定认证将由Apache处理,而不是在应用程序级别处理。
如果要部署到Apache,并使用任何非基于会话的 身份验证,您需要显式配置mod_wsgi来传递 所需的标题到应用程序。
因此,身份验证由Apache处理,而不是在应用程序级别。