Я создаю приложение Django / JQuery / MySQL, где я передаю составную структуру данных 'grid' как
return render_to_response('products.html', grid)
Я рендерил 'grid' в набор элементов пользовательского интерфейса ('td', 'button', 'div' и т. Д., Инкапсулированных в HTML 'table'.
Типичный вариант использования:
- Пользователь нажимает на определенный элемент интерфейса в таблице
- Вызывается jQUery.click (), который создает внутренний тег «input» для элемента, по которому щелкнули.
- Пользователь может добавлять / изменять / удалять текст из элемента.
- При потере фокуса вызывается jQuery.blur (), который возвращает исходные свойства выбранного элемента, такие как удаление тега ввода и т. Д.
- jQuery.blur () также вызывает функцию AJAX, где я выполняю вызов .post для отправки измененных пользователем данных обратно на URL (функция в представлении).
Видимая вызываемая функция затем фиксирует новые изменения в базе данных и возвращает событие «success» обратно на веб-страницу:
tc_model_instance.update(tc_id=json_data['id'])
С помощью этого варианта использования, как вы можете видеть, изменения сразу же фиксируются в базе данных, как только пользователь вводит данные и перестает фокусироваться на конкретном элементе. Без использования транзакций БД в INNODB, как мне создать ассоциацию View-Template, чтобы любые изменения в шаблоне HTML асинхронно отражались в модели, но не обязательно записывались в базу данных.
Смежный вопрос:
Если возможно, я бы также хотел создать двунаправленную ассоциацию на основе событий между отображаемым шаблоном и моими структурами данных как часть представления таким образом, чтобы любые изменения, вносимые либо в элемент пользовательского интерфейса веб-браузера, либо в данные связанного представления, всегда были синхронизированы. , Я планирую использовать AJAX для большинства целей. Не уверен, что формы будут иметь смысл в этом отношении.
Спасибо.