【发布时间】:2018-08-24 20:20:57
【问题描述】:
我正在尝试向我的 Django 站点添加功能以将文件上传到 AWS S3 存储桶。我找到了django-s3direct,这似乎非常适合。但是,在按照所有设置说明进行操作后,我在渲染非常基本的 HTML 模板时遇到了错误:
<html>
<head>
<meta charset="utf-8">
<title>s3direct</title>
{{ form.media }}
</head>
<body>
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
</form>
</body>
</html>
我在{{ form.as_p }} 的行上收到错误Reverse for 's3direct' not found. 's3direct' is not a valid view function or pattern name.。
在我的urls.py 我有(在 s3direct 文档中指定):
from django.conf.urls import url
from .views import get_upload_params, generate_aws_v4_signature, MyView
app_name = 's3direct'
urlpatterns = [
url(r'^$', MyView.as_view(), name='form'),
url('^get_upload_params/', get_upload_params, name='s3direct'),
url('^get_aws_v4_signature/', generate_aws_v4_signature, name='s3direct-signing'),
]
在forms.py:
from django import forms
from s3direct.widgets import S3DirectWidget
class S3DirectUploadForm(forms.Form):
csv = forms.URLField(widget=S3DirectWidget(dest='csv_destination'))
在views.py 中(以及来自 s3direct 的其他几个长函数):
from django.views.generic import FormView
from .forms import S3DirectUploadForm
class MyView(FormView):
template_name = 'form.html'
form_class = S3DirectUploadForm
我已配置 IAM 策略并将密钥添加到我的 Django 设置文件,并为我的 S3 存储桶制定了 CORS 策略。我正在使用 Django 2.0。我被困在这个反向错误上,似乎无法弄清楚是什么原因造成的。
【问题讨论】: