Повторное использование форм администратора для пользовательских представлений в django?

StackOverflow https://stackoverflow.com/questions/1637851

  •  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. Они реализованы в виде виджетов обычных форм , так что есть потенциал для их повторного использования в вашем собственном коде, но я предполагаю, что потребуется некоторое экспериментирование и настройка, чтобы заставить его работать должным образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top