Повторное использование форм администратора для пользовательских представлений в django?
-
08-07-2019 - |
Вопрос
Django создает очень красивые формы после создания models.py и admin.py. Р>
Как я могу повторно использовать эти формы (с дополнительной удобной обработкой внешних ключей и полей "многие ко многим") в моих собственных представлениях?
ModelForm генерирует только " простой " формы. Где взять дополнительные батареи?
Решение
Мне удалось воспроизвести эти зеленые кнопки в моих формах, следуя инструкциям на этой странице: http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/
Другие советы
Стандартная ModelForm сделает почти все, что делает администратор (ForeignKeys превратится в выпадающий список, ManyToManyFields превратится в множественный выбор).
Основным исключением будут маленькие зеленые кнопки плюс для добавления новой записи. Было бы довольно сложно сделать их универсальными, поскольку они зависят от ряда специфических для администратора вещей: знание, где найти страницу добавления для связанной модели; JS, чтобы открыть окно, закрыть его при отправке и обновить родительскую страницу; и т. д. Вы можете покопаться в админе и выяснить, как он реализует эти дополнительные тонкости, но не будет простого способа вставить их в ваш код.
Другая тонкость, которую вы, возможно, захотите - это альтернативные пользовательские интерфейсы filter_horizontal или filter_vertical для ManyToManyField. Они реализованы в виде виджетов обычных форм , так что есть потенциал для их повторного использования в вашем собственном коде, но я предполагаю, что потребуется некоторое экспериментирование и настройка, чтобы заставить его работать должным образом.