Невозможно отобразить форму с модальным исчезновением в Django

#django #modal-dialog

#django #модальный диалог

Вопрос:

Я запутался, как загрузить файл в БД по форме в модальном режиме, поскольку он не отображал форму после того, как я нажал кнопку для модального исчезновения.

число просмотров:

 def user_info(request):
user = request.user
orders = Order.objects.filter(user=request.user, ordered=True).order_by('-start_date')
order_items = OrderItem.objects.filter(user=request.user)
context = {
    'user': user,
    'orders': orders,
    'order_items': order_items,
    'form': form
}
return render(request, 'userinfo.html', context)

def upload_page(request, id):
   order = get_object_or_404(Order, id=id)
   form = Upload_File(request.POST or None, request.FILES or None, instance=order)
   if request.method == 'POST':
        if form.is_valid():
            form.save()
            order.save()
            messages.success(request, 'Succeed')
            return redirect('user_info')
        else:
            messages.warning(request, 'Failed')
            return redirect('user_info')
else:
    form = Upload_File()
    context = {
        'form': form,
        'order': order
    }
    return render(request, 'payment_upload.html', context)
  

шаблон, включающий модальный:

 {% for order_item in orders %}
 <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#upload-{{ order_item.id }}">
 Open Modal</button>
{% endfor %}
  

модальный шаблон:

  <form method="post" enctype="multipart/form-data" action="{% url 'upload_page' id=order_item.id %}">
{% csrf_token %}

        {{ form }}

        <button class="form-group btn btn-success" type="submit">Confirm</button>
</form>
  

Комментарии:

1. Я не уверен, в чем проблема, отображается ли какое-либо сообщение об ошибке или в чем смысл?

2. форма не может отображаться в модальном

Ответ №1:

Поправьте меня, если я ошибаюсь, Но внутри вашего def user_info(запроса):… Я не вижу никакого импорта для form или какого-либо объявления.

Которую вы используете в своем контексте

 context = {
    'user': user,
    'orders': orders,
    'order_items': order_items,
    'form': form
}
  

Вы должны объявить свой

форма = Upload_File(запрос.ОПУБЛИКОВАТЬ или нет, запросить.ФАЙЛЫ или нет, экземпляр = порядок)

в верхней части всего, def() чтобы к нему можно было получить доступ глобально для всех остальных def() methods .