Как загрузить несколько файлов в 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

Вернуться на верх