Стандартная ModelForm сделает почти все, что делает администратор (ForeignKeys превратится в выпадающий список, ManyToManyFields превратится в множественный выбор).
Основным исключением будут маленькие зеленые кнопки плюс для добавления новой записи. Было бы довольно сложно сделать их универсальными, поскольку они зависят от ряда специфических для администратора вещей: знание, где найти страницу добавления для связанной модели; JS, чтобы открыть окно, закрыть его при отправке и обновить родительскую страницу; и т. д. Вы можете покопаться в админе и выяснить, как он реализует эти дополнительные тонкости, но не будет простого способа перенести их в ваш код.
Другая тонкость, которую вы, возможно, захотите - это альтернативные пользовательские интерфейсы filter_horizontal или filter_vertical для ManyToManyField. Они реализованы как обычные виджеты форм , поэтому существует вероятность их повторного использования в вашем собственном коде, но я предполагаю, что для корректной работы потребуется некоторое экспериментирование и настройка.