Я делаю приложение для блога в django, которое имеет 3 кнопки отправки.
- Опубликовать
- Сохранить
- Предварительный просмотр
Сохранение должно быть обработано AJAX и обновляет данные в блоге.Опубликовать, опубликовать блог и перенаправить на соответствующую страницу. Предварительный просмотр показывает предварительный просмотр на другой вкладке.В случае предварительного просмотра я могу просто вызвать функцию сохранения, а затем открыть страницу предварительного просмотра в новой вкладке. / Таким образом, по сути, мне нужно сохранить через AJAX.Я использую приведенный ниже код, и я получаю сообщение об ошибке
<form id="blog_form" action="" method="post">
<!-- All the form fields are here -->
<a href="#" id="not_button" class="save_button"> Save</a>
</form>
, а javascript имеет вид
var post_url = location.pathname;
$(".save_button").click(function()
{
$.ajax({
type: "POST",
url: post_url,
data: $("#blog_form").serialize(),
dataType: 'json',
success: function()
{
// display success message
$("#reply-message").html('Your message has been sent!').fadeOut(3000, function() {});
},
error: function()
{
// display failure message
$("#reply-message").html('Form not saved!').fadeOut(3000, function() {});
},
});
return false;
});
, и представления имеют эту часть в дополнение к другим вещам
def blog_form(request,author_id=None,slug=None):
if request.is_ajax():
if request.method == 'POST':
author = User.objects.get(pk=author_id)
blog = get_object_or_404(Entry, creator = author, slug = slug)
form = EntryForm(request.POST, instance = blog)
if form.is_valid():
form.save()
return_message = "Updated"
return HttpResponse(return_message,mimetype='application/javascript')
Я ожидаю, что это сработает, но я не знаю, почему я получаю ошибку в вызове jquery.Я получаю сообщение о неудаче.Типичный URL для этой формы будет /blogs/1/my-blog/edit/
. Ниже приведена соответствующая часть моего файла urls.py
url(r'^(?P<author_id>\d+)/(?P<slug>[-\w]+)/edit/$', 'blog.views.blog_form', name='edit_blog'),
Редактировать:
Ошибка, которую явход в jquery был parsererror
, после того как я решил эту проблему, возникла новая.Форма отправляется через ajax только один раз.Если я пытаюсь отправить его снова, он не работает, ничего не происходит, пока я не перезагружу страницу.