Использование одного и того же модала для добавления/редактирования содержимого строки DataTable
Я изо всех сил пытаюсь заставить этот код работать.
У меня есть Django-сайт, на котором на странице, которую я сейчас делаю, есть DataTable с информацией о моих клиентах. У меня есть кнопка сверху для добавления нового клиента, и строки таблицы могут быть нажаты для редактирования соответствующих данных клиента. В обоих случаях показывается модал (#clientModal), один и тот же. У меня почти все работает, так как все работало нормально, когда я использовал несколько страниц вместо внутристраничных модалов. Все работает как надо, когда я нажимаю на строку таблицы, чтобы отредактировать информацию о каком-то клиенте, модальная форма заполняется, но когда я нажимаю на кнопку сохранения формы, она создает новый объект вместо того, чтобы обновить соответствующий объект. Вот в чем моя проблема, я думаю, что я не далек от правильного подхода, хотя я не совсем уверен, чего здесь не хватает.
customerList.html
.js файл для customerList.html
$(".clickable-row, #customerTable").on("click", "tr", function (e) {
//$("#customerTable, .clickable-row").click( function (event) {
$(document).find("h4#form-modal-title").text("Editar Cliente ");
var modal = $(document).find("#clientModal");
var pk = $(this).data("pid");
$.ajax({
data: { pk: pk },
url: "{% url 'CustomerEdit' %}",
context: document.body,
error: function (response, error) {
alert(error);
},
}).done(function (response) {
$("#my-modal-body").html(response);
});
$("#clientModal").modal("show");
});
views.py
@login_required
def CustomerList_view(request):
form = CustomerForm(request.POST or None, request.FILES or None)
if request.POST and form.is_valid():
form.save()
return redirect("/customers/")
customers = Customer.objects.all()
context = {
'customers': customers,
'form': form,
'collapse': 'Sales'
}
return render(request=request, template_name="customerList.html", context=context)
@login_required
def CustomerEdit_view(request):
# Edit object of form
pk = request.GET.get('pk')
customer = Customer.objects.get(id=pk)
form = CustomerForm(request.POST or None,instance = customer)
if request.POST and form.is_valid():
form.save()
return redirect("/customers/")
context = {
'pk': pk,
'form': form,
'collapse': 'Sales'
}
return render(request, 'customerEdit.html', context=context)