现在我'm working on deleting files from s3 at django admin page. I would like to delete files in s3 when I click '删除' button that I added as a custom button. The '删除'按钮位于django管理员首页的文件下载链接旁边,如下面的链接(图片)所示:custom UI screenshot
-
(步骤1)当我单击'remove'按钮时,
-
(步骤2)我想让前端管理页面向使用boto3库的后端Web服务器发送请求 .
-
(步骤3)一旦请求到达后端,我希望boto3与S3通信,以便在S3端删除所请求的文件 .
-
(步骤4)然后,S3应该回复boto3,说完请求的删除操作 .
为了实现这些步骤,我认为我需要在Web服务器端定义/实现一个接口,并使“删除”按钮上的监听器向我创建的Web服务器端接口发送请求 . 但是,我找不到办法这样做 . 我可以就此问题获得一些帮助的建议或文件吗?
在这里,我给你admin.py文件的相应代码部分 . FileUploadWidget有'upload.html'作为模板 .
class FileUploadWidget(forms.Widget):
template_name = 'upload.html'
def render(self, name, value, attrs=None, renderer=None):
context = {
'name': name,
'data': value,
...
}
return mark_safe(render_to_string(self.template_name, context))
下面的MyAdmin使用上面的FileUploadWidget:
class MyAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
files_widget = FileUploadWidget()
form = super().get_form(request, obj, widgets={ 'files': files_widget }, **kwargs)
return form
以下是'upload.html'文件的相应部分:
<div>
...
<div>
<label>Uploaded files: </label>
<div id="uploaded_files">
<a href="...">...</a> <button class="btn_remove">Remove</button>
</div>
</div>
</div>