【问题标题】:Uploading to S3 from Django从 Django 上传到 S3
【发布时间】: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。我被困在这个反向错误上,似乎无法弄清楚是什么原因造成的。

【问题讨论】:

    标签: html django url amazon-s3


    【解决方案1】:

    根据文档 urls.py 应该包含

    urlpatterns = [
     url(r'^s3direct/', include('s3direct.urls')),
     ]
    

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多