私のウェブサイトの投稿/リストに接続されている複数の画像アップローダーを構築しようとしています。すべてを設定することができましたが、アップロードをクリックすると、フォームは検証されず、写真は保存されません。 ここに私が今持っているものがあります。Django Dopzoneフォームが有効ではありません
models.py
class UploadFileModel(models.Model):
# listing = models.ForeignKey(Listing, blank=False, default=1)
file = models.ImageField(upload_to=settings.MEDIA_ROOT)
forms.py
class UploadFileForm(forms.ModelForm):
class Meta:
model = UploadFileModel
fields = ["file",]
views.py
def handle_uploaded_file(f):
with open('some/file/name.txt', 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
@require_POST
def upload(request, id):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
print request.FILES
if form.is_valid():
handle_uploaded_file(request.FILES['file'])
return HttpResponse(status=201)
else:
# print form.errors
return HttpResponse(status=400)
return HttpResponse(status=404)
def photo_upload(request, id):
listing = get_object_or_404(Listing, id=id)
context = {"listing": listing,}
return render(request, "dropzone_photo.html", context)
そして、ここで終わりでは、テンプレートの一部です:
<form class="dropzone" id="my-awesome-dropzone" enctype="multipart/form-data">{% csrf_token %}
<div class="dropzone-previews"></div> <!-- this is were the previews should be shown. -->
<input type="hidden" name="listing" value="{{ listing.id }}" id="listing_id"/>
<button type="submit" class="btn btn-primary">Upload</button>
</form>
私は次のような構成でDropzone.options.myAwesomeDropzoneを使用しています:
url: "/dropzone/upload/" + $("#listing_id").val(),
autoProcessQueue: false,
uploadMultiple: true,
ご返信いただきありがとうございます、私は正しい道に私を置いています。あなたの助けを借りて、私が探していたものを作ることができました。あなたのコードに関するものは、複数のイメージをアップロードするために 'return HttpResponse(status = 201)'がforループでなければなりません。 – Azur
私はajaxを使っていて、アップロードされたすべてのファイルに対して201を返すと思います...とにかく、助けてくれてうれしいです。 – somecallitblues