Как загрузить несколько файлов в Django с помощью Dropzone js?
Инфо: Я хочу загружать несколько файлов с помощью Dropzone js в проекте Django. У меня есть две модели. Одна для Post, а другая для File. Моя модель файлов будет иметь внешний ключ к модели Post. В моем Views.py когда пользователь заполняет форму Post, он должен заполнить и форму Files для Post.
Fine: Когда я отправляю форму Ajax_file_uploads
вместо использования Dropzone.js несколько выбранных файлов прикрепляются к одному экземпляру сообщения.
Проблема: Если я пытаюсь загрузить несколько файлов с помощью Dropzone.js При отправке формы создаются несколько статей вместе с несколькими файлами.
Любая помощь будет очень признательна!
models.py
class Post(models.Model):
title = models.CharField(max_length=100, blank=True)
content = models.TextField(blank=True)
class FileAttach(models.Model):
file = models.FileField(upload_to='uploads/')
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='file_attach', null=True)
views.py
def Ajax_file_uploads(request):
if request.method == "POST":
p_form = PostForm(request.POST or None)
form = AttachForm(request.POST or None, request.FILES)
if p_form.is_valid():
art = p_form.save(commit=False)
art.user = request.user
art.save()
files = request.FILES.getlist('file')
if form.is_valid():
for f in files:
file_instance = FileAttach(file=f, post=art)
file_instance.save()
return JsonResponse({"error": False, "message": "Uploaded Successfully"})
else:
return JsonResponse({"error": True, "errors": p_form.errors})
else:
p_form = PostForm()
form = AttachForm()
return render(request, "upload/api.html", {"p_form": p_form, "form": form})
create.html