1
私はAWSでS3バケットを作成するボタンを作成しようとしています。私はDjangoについてはまだ少し緑色なので、これをどうやって動かすかは分かりません。私はいくつかのチュートリアルを読んだが、ボタンをクリックするとデータベースに何かを追加する方法を示している。Djangoはボタンでs3バケットを作成します
views.py
class createS3(TemplateView):
template_name = 'project/create_s3.html'
def get(self, request):
form = S3Form()
return render(request, self.template_name, {'form': form})
def createBucket(self, bucketName):
form = S3Form(request.POST)
s3 = boto3.resource('s3')
if form.is_valid():
name = form.cleaned_data['name']
s3.create_bucket(Bucket=name)
def post(self, request):
form = S3Form(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
args = {'form':form, 'name':name}
return render(request, self.template_name, args)
は、ここにテンプレートです:
{% include "home/_header.html" %}
{% block content %}
{% load staticfiles %}
<div class="mainPage">
<div class="s3Wrapper">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" name="create" class="button create">Create</button>
</form>
</div>
</div>
{% endblock content %}
は今私の問題は、私はボタンをクリックしてcreateBucket
関数を呼び出すないか、である。ここ は、私がこれまで行ってきたものです?または、新しいURLを作成し、そこに 'name'変数を渡して新しいバケットを作成する必要がありますか?
ありがとうございます!
は見えるが、私は送信ボタンを襲ったとき、私は 'name「をcreateBucket」取得defined'ではありません。これは何を意味するのでしょうか?私は以前に関数を定義しましたが、私はしませんでしたか? – davidb
createBucket()とpost()が同じクラスのメソッドであると仮定して、コードを更新しました。 – jarmod
乾杯!今度は別のエラーが出ますが、このスレッドの問題は解決されていると思います。少なくとも私はこれを使う方法を知っています。 – davidb