Есть ли задержка при загрузке файлов в Django, прежде чем пользователь сможет увидеть загруженные файлы?

#python #django

#python #django

Вопрос:

У меня есть типичный models.ModelForm файл с одним полем: a FileField . Однако, когда пользователь загружает файл с помощью формы и страница перезагружается, файл не отображается в списке. Пользователь должен перезагрузить страницу вручную, чтобы она отображалась как «текущий файл».

Это мой код просмотра:

 submission = Submission.objects.filter(user=request.user, problem=problem).first()
    if request.POST:
        submission_form = SubmissionForm(request.POST, request.FILES, instance=submission)
        if submission_form.is_valid():
            submission_form.save()
    else:
        submission_form = SubmissionForm(instance=submission)
return render_to_response('view-problem.html',
                          dictionary={'problem': problem, 'submission_form': submission_form},
                          context_instance=RequestContext(request))
  

Я предполагаю, что файл все еще обрабатывается во время загрузки представления, поэтому пользователь не сразу его видит. Как мне это исправить?

Ответ №1:

Вы должны создать новую форму после сохранения старой формы. ModelForm.save() возвращает экземпляр модели, вы можете использовать этот экземпляр для инициализации новой формы модели.

Код:

 if request.POST:
    submission_form = SubmissionForm(request.POST, request.FILES, instance=submission)
    if submission_form.is_valid():
        submission = submission_form.save()

submission_form = SubmissionForm(instance=submission)