2012-02-15 2 views
0

Я создаю приложение Django/JQuery/MySQL, где я прохожу композитную структуру данных «сетка», какДжанго с задержкой обновления базы данных

return render_to_response('products.html', grid) 

Я рендеринг «сетки» в набор элементов пользовательского интерфейса (» тд»,„кнопка“,„DIV“и т.д., инкапсулированных в HTML„таблицы“

типичное использование корпуса:.

  1. пользователь нажимает на определенный элемент пользовательского интерфейса в таблице
  2. Jquery. Clic Вызывается k(), который создает внутренний тег «input» для щелкнутого элемента.
  3. Пользователь может добавлять/изменять/удалять текст из этого элемента.
  4. Когда фокус теряется, jQuery.blur() вызывается, который возвращается на исходные свойства щелкнули элемента, таких как удаление ввода тегов и т.д.
  5. jQuery.blur() также вызывает функцию AJAX, где я делаю .POST вызов для отправки пользовательских измененных данных обратно на URL (функция в поле зрения).
  6. Вызванная функция в силу затем совершает новые изменения в базе данных и возвращает «успех» событие обратно на веб-странице:

    tc_model_instance.update(tc_id=json_data['id']) 
    

Благодаря этому прецеденту, как вы можете увидеть изменения немедленно передается в базу данных, как только пользователь вводит данные, и фокусируется на конкретном элементе. Без использования транзакций БД в INNODB, как я могу создать ассоциацию View-Template, так что любые изменения в HTML-шаблоне асинхронно отражаются в модели, но не обязательно записываются в базу данных.

Связанный с этим вопрос: Если возможно, я также хотел бы создать двунаправленную связь, основанную на событиях, между визуализированным шаблоном и моими структурами данных как часть представления таким образом, чтобы любые изменения, внесенные в пользовательский интерфейс веб-браузера элемент или связанные с ним данные всегда синхронизируются. Я планирую использовать AJAX для большей цели. Не уверен, что формы будут иметь смысл в этом отношении.

Спасибо.

ответ

1

Возможно, вы могли бы выбросить копию объекта на карту сеанса, и все сообщения напрямую меняют этот объект вместо базы данных. Затем, когда пользователь нажимает кнопку сохранения, вы запускаете другую команду POST на сервер, которая затем просто вызывает сеанс ['my_object']. Save().

Обратите внимание, что объект сеанса также сохраняется в БД, поэтому, если вы пытаетесь избежать попадания в БД, то то, что я написал выше, не помогло бы.

Смежные вопросы