现在,我正在django管理页面上从s3删除文件。 当我单击添加为自定义按钮的“删除”按钮时,我想删除s3中的文件。 “删除”按钮位于django管理员首页的文件下载链接旁边,如以下链接所示(图像): custom UI screenshot
要实现这些步骤,我想我需要在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>