Кто-нибудь может обеспечить быстрый проход?
У меня есть диалог JQueryUI, который загружается через ajax с формой django.
JQuery
$("#project_add").on(
"click", {url: "/projects/project_create"}, open_dialog
);
function open_dialog(event) {
//create the div that will hold the dialog box
var projectDialog = $('#project_dialog');
if ($('#project_dialog').length == 0) {
projectDialog = $('<div id="project_dialog"></div>').appendTo('body');
}
// load the passed url into the dialog
projectDialog.load(event.data.url);
// create the dialog box and display it
projectDialog.dialog({
title: "Create Project",
position: ['center', 'top'],
closeOnEscape: true,
close: function() {projectDialog.dialog("destroy");}
});
}
Джанго
class CreateProject(CreateView):
template_name = "projects/project_create.html"
form_class = ProjectCreateForm
def form_valid(self, form):
self.object = form.save()
return HttpResponse()
шаблон django
<form action="project_create/" method="post">
{{ form.as_p }}
<input type="submit" value="Save" id="dialog-save">
</form>
Все, что я хочу сделать, - это сохранить все действия в диалоговом окне, т. Е. Недействительные записи формы будут иметь сообщения проверки в диалоговом окне. Если форма верна, я хочу, чтобы диалог закрылся и вернулся на страницу, которая вызвала диалог. Я возился с переопределением form_valid, чтобы попытаться избежать необходимости перенаправления, но безрезультатно. Я в конечном итоге на пустой странице с URL-адресом, равным URL-адресу, переданному в атрибуте действия формы. Я хотел бы избежать добавления слушателя в jquery на кнопку отправки для обработки проверки формы в js. Я видел несколько постов, в которых предлагается выполнить проверку на стороне js, а затем передать данные в django для сохранения. Я хотел бы сделать проверку и сохранение с Django.
Если бы я мог понять, как это сделать, я бы мог добавить слушателя для уничтожения диалога при успешной отправке формы, но я хочу использовать django для проверки и jquery только для презентации. Любые советы?