Повторное использование форм администратора для пользовательских представлений в django? - PullRequest
7 голосов
/ 28 октября 2009

Django создает очень красивые формы после создания models.py и admin.py.

Как я могу использовать эти формы (с дополнительной удобной обработкой внешних ключей и полей "многие ко многим") в моих собственных представлениях?

ModelForm генерирует только «простые» формы. Где взять дополнительные батареи?

Ответы [ 2 ]

4 голосов
/ 31 октября 2009

Мне удалось воспроизвести эти зеленые кнопки в моих формах, следуя инструкциям на этой странице: http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/

3 голосов
/ 28 октября 2009

Стандартная ModelForm сделает почти все, что делает администратор (ForeignKeys превратится в выпадающий список, ManyToManyFields превратится в множественный выбор).

Основным исключением будут маленькие зеленые кнопки плюс для добавления новой записи. Было бы довольно сложно сделать их универсальными, поскольку они зависят от ряда специфических для администратора вещей: знание, где найти страницу добавления для связанной модели; JS, чтобы открыть окно, закрыть его при отправке и обновить родительскую страницу; и т. д. Вы можете покопаться в админе и выяснить, как он реализует эти дополнительные тонкости, но не будет простого способа перенести их в ваш код.

Другая тонкость, которую вы, возможно, захотите - это альтернативные пользовательские интерфейсы filter_horizontal или filter_vertical для ManyToManyField. Они реализованы как обычные виджеты форм , поэтому существует вероятность их повторного использования в вашем собственном коде, но я предполагаю, что для корректной работы потребуется некоторое экспериментирование и настройка.

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