У меня есть это приложение для блога, в котором я хочу дать кнопку предварительного просмотра, которая сохраняет форму, а затем открывает блог в новом окне.Javascript для этого
$(function() {
var current_link = location.href;
$(".preview_button").click(function()
{
$.ajax({
type: "POST",
url: current_link,
data: $("#blog_form").serialize(),
dataType: 'json',
success: function(data)
{
window.open(data,'preview_tab');
$("#reply-message").html('Form saved');
},
error: function(request,error)
{
$("#reply-message").html('Form not saved because error:' + error);
},
});
return false;
});
}
);
Я обрабатываю это в views.py как
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)
title = request.POST.get('title', False)
text = request.POST.get('text', False)
tags = request.POST.get('tags', False)
enable_comments = request.POST.get('enable_comments', False)
blog.title = title
blog.text = text
blog.tags = tags
blog.enable_comments = enable_comments
blog.save()
return_message = '/blogs/' + str(blog.creator.id) + '/' + str(blog.slug) + '/' + 'preview/'
return HttpResponse(simplejson.dumps(return_message),mimetype='application/javascript')
return_message
содержит URL-адрес страницы предварительного просмотра и используется для ее открытия вновое окно.У меня две проблемы
- Форма отправляется только один раз, используя этот javascript, для повторной отправки мне нужно обновить страницу.
- Во-вторых, обновляются все поля блога, кроме textarea.Я не понимаю, почему это может происходить
Редактировать: причина проблемы
Первая проблема заключается в том, чтотот же токен csrf отправляется при сериализации формы, так есть ли способ удалить этот токен из функции сериализации?
Вторая проблема заключается в том, что я использую редактор TinyMCE в текстовой области, и когда я что-то печатаю в редакторе, изменения не отражаются в реальном текстовом поле.Как я могу выбрать текст из текстового редактора, а не из базовой (наиболее вероятно) скрытой текстовой области