簡體   English   中英

Django單擊按鈕刪除S3存儲桶

[英]Django delete S3 bucket on button click

我在AWS上有一個S3存儲桶列表。 顯示每個存儲桶的名稱,我正在嘗試使用django實現刪除按鈕。 我遇到的問題是我不確定如何獲取存儲桶名稱變量並將其傳遞給刪除函數。 到目前為止,這是我所做的:

DeleteBucketView.py

class deleteBucket(TemplateView):
template_name = "project/delete_bucket.html"

def deleteBucket(self, name):
    s3 = boto3.resource('s3')
    bucket = s3.Bucket(name)
    bucket.delete()

S3.html

<div class="s3Items">
  {% for bucket in buckets %}
  <div class="s3Name">
    <div id="left">
      <a href="#"><h4 id='s3ItemName'>{{ bucket.bucketName }}</h4></a>
    </div>
    <div id="right">
      <ul id='s3ItemDesc'>
        <li>{{ bucket.createdAt }}</li>
          <li>{{ bucket.totalSize }}/4GB</li>
        <li>
          <form method="post" action="{% url 'project:deleteBucket' %}">
            {% csrf_token %}
            <button type="submit" name="button" class='button delete'>Delete</button>
          </form>
        </li>
      </ul>
    </div>
</div>
{% endfor %}

deletebucket.html為空,因為我不確定我可以在此處輸入什么。 單擊刪除按鈕時,我需要調用函數deleteBucket ,但是我也需要將存儲桶的名稱傳遞給該函數。 我想我也需要在deleteBucket視圖中定義post,但是我不確定如何從那里去。 如何將存儲桶的名稱傳遞給函數並使其工作? 我是否需要在deleteBucket.html中添加任何內容?

謝謝

我對您的網址定義了解不多,但我想是這樣的...

url(r'^delete-bucket/(?P<name>\w+)$', 'views.deleteBucket.as_view()', name='delete_bucket'),

然后像這樣修改您的視圖...

class deleteBucket(TemplateView):
    template_name = "project/delete_bucket.html"

    def delete_operation(self, name):
        s3 = boto3.resource('s3')
        bucket = s3.Bucket(name)
        bucket.delete()

    def post(self, request, name):
        self.delete_operation(name)
        ...

在html中,您必須說出名稱

<form method="post" action="{% url 'project.delete_bucket' name=bucket.bucketNmae %}">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM