(Это старый вопрос, но я решил добавить ответ, если он все еще полезен. Недавно я работал над аналогичным вопросом.)
Я считаю, что это будет сложноизменить генерацию форм Django, чтобы делать то, что вы хотите.Причина состоит в том, что встроенный набор форм использует один класс / форму для всех строк встроенного элемента - нет параметров конфигурации, которые оцениваются для каждой строки встроенной формы.Я убедился в этом, прочитав сам код - ищите «inline» и «formset» в django.contrib.admin.options.py, особенно строки 1039-1047 (версия 1.5.1).По этой же причине некоторые поля не могут быть доступны только для чтения в существующих элементах и могут изменяться в новых элементах (см., Например, этот вопрос ).
Обходные пути, найденные дляслучай только для чтения включал пользовательский виджет, который производит желаемое поведение, такое как this .Это все еще не будет напрямую поддерживать полиморфизм, как бы то ни было.Я думаю, что вам нужно будет в конечном итоге сопоставить расходящиеся типы обратно с общим предком (например, иметь все классы питомцев, способные возвращать данные их уникальных атрибутов и значений), а затем создать один пользовательский виджет, который отображает полиморфную часть длявы.Затем вам нужно отобразить значения обратно при сохранении.
Это может быть более сложным, чем оно того стоит, и может привести к предложению в другом ответе не использовать admin для этого: -)