Живое редактирование в Джанго - PullRequest
4 голосов
/ 08 января 2010

Представьте, что у вас есть карточка адресной книги. Обычно поля отображаются в виде статического текста в определенном макете (представьте, что у вас есть несколько телефонных номеров, электронных писем и т. Д.). При редактировании вы хотите использовать тот же макет, но с полями формы вместо статического текста. Кажется, что нормальный способ сделать это в Django - это использовать отдельные представления и шаблоны, что заставляет вас дублировать всю разметку макета (т. Е. Она не является СУХОЙ) и переключать страницы для переключения между режимами просмотра и редактирования.

Было бы лучше, если бы вы могли включать и выключать режим редактирования на лету, используя JavaScript для замены статического текста полями формы и наоборот, и Ajax для отправки изменений на сервер. Я называю это «редактированием в реальном времени», но, возможно, есть лучший термин. В любом случае, есть ли рекомендуемый способ сделать это в Django?

Я думал о рендеринге для каждого поля как статической, так и редактируемой версии, а также об использовании JavaScript для скрытия и отображения их по мере необходимости. Но мне также нужно обновить статические поля новыми данными с сервера, и мне нужно учитывать встроенные формы и сложные поля, такие как изображения (где статическое отображение - это тег <img>, и вам необходимо обновить src после загрузки). И мне также может понадобиться динамически добавлять и удалять поля или наборы полей (опять же, рассмотрим встроенные наборы форм).

В общем, потребуется много кода. Существует ли существующее решение для Django или рекомендуемый подход? В противном случае, какой фреймворк JavaScript может быть наиболее полезным для этого?

Ответы [ 3 ]

4 голосов
/ 27 июня 2013

https://pypi.python.org/pypi/django-inplaceedit#information делает именно то, что вы просили.

2 голосов
/ 08 января 2010

Возможно, вы также захотите взглянуть на библиотеку Javascript jQuery и ее встроенные возможности редактирования .

2 голосов
/ 08 января 2010

Я сам этим не пользовался, но слышал, что django-inline предназначен для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...