Я установил функцию просмотра обновления следующим образом:
class Load_paper(UpdateView):
model = Materiale
form_class = MaterialeForm
template_name = "magazzino/edit_paper_modal.html"
Установка url.py как:
path('magazzino_edit/<int:pk>', views.Load_paper.as_view(), name='load_paper')
И, наконец, в моей таблице шаблонов столбец со следующим кодом :
<td><a href="{% url 'load_paper' element.id %}">Edit</a> </td>
Все работает отлично, но при нажатии на кнопку редактирования django перенаправляет меня на другую страницу для редактирования отдельных объектов.
есть ли способ открыть модальный форма на той же странице, когда я нажимаю кнопку редактирования ??
Это мой фактический edit_paper_modal.html
{% load crispy_forms_tags %}
<div class="modal-dialog modal-lg" role="document">
<form action="{% url 'load_paper' pk=object.pk %}" method="post" class="form" enctype="multipart/form-data">
{% csrf_token %}
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title">Edit Paper</h4>
</div>
<div class="modal-body">
{% csrf_token %}
{{form|crispy}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<input type="submit" class="btn btn-primary" value="Save changes" />
</div>
</div><!-- /.modal-content -->
</form>
</div>
Я нашел код jQuery, который может мне помочь, но я не знаю, как это установить в моих views.py и urls.py.
$(document).ready(function(){
$("#myBtn").click(function(){
var pk = $(this).data('pid')
$("#myModal").modal("show");
});
$("#myModal").on('show.bs.modal', function(event){
var modal = $(this)
var pk = $(this).data('pid')
$.ajax({
data: {'pk': pk},
url: "{% url 'edit_income' %}",
context: document.body,
error: function(response, error) {
alert(error);
}
}).done(function(response) {
modal.html(response);
});
});
});