Я хочу удалить 1 базу данных в базе данных. Когда я нажимаю кнопку "Удалить", то выводим диалоговое окно для подтверждения. Но когда я использую ajax, я не могу удалить. Пожалуйста, помогите мне! это мой код просмотра
def company_delete(request):
if request.method == 'POST':
company = Company.objects.get(pk=int(QueryDict(request.body).get('postpk')))
company.delete()
response_data = {}
response_data['mgs'] = 'Company was deleted'
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
else:
return HttpResponse(
json.dumps({"nothing to see": "this isn't happening"}),
content_type="application/json"
)
Это мой html-код:
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<a id="opener" type="submit" class="btn btn-danger">Delete</a>
</div>
<div id="dialog" title="Are you sure?">
<p>Some helpful info here</p>
</div>
</div>
Это мой код jquery
$(function () {
$("#dialog").dialog({
autoOpen: false,
resizable: false,
height: 140,
modal: true,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
},
buttons: {
"Yes": function delete_company(companyid) {
$.ajax({
type: "POST",
url: "company_delete/",
data: { postpk : companyid },
success: function (json) {
$('#dialog' + companyid).hide();
console.log("company deletion successful");
$(this).dialog("close");
}
});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
$("#opener").click(function () {
$("#dialog").dialog("open");
});
});
Это мои URL:
urlpatterns = [
url(r'^delete/(?P<company_id>\d+)/$', views.company_delete, name='company_delete'),]
Похоже, ваш шаблон URL-адреса ожидает, что вызов придет, чтобы " delete/<company_id>
", но ваш URL-адрес JQuery ajax указывается на "company_delete", и вы выполняете POST, который не отправляет идентификатор компании в URL-адрес.
Вы хотели дать "компания/удалить" в AJAX? (что имеет смысл, если ваш urls.py является частью приложения, и есть еще один верхний уровень/уровень проекта urls.py, что "компания" в качестве шаблона url)
И для удаления лучше использовать "тип": "удалить" в JQuery ajax call (и внести необходимые изменения в представление Django для этого)