Джанго - встроенные формы и иностранные ключи

У меня есть приложение, которое позволяет пользователю создать оценку для проекта. Оценка содержит основную информацию о клиенте (имя, адрес, номер телефона и т. Д.) И пользовательское значение первичного ключа, которое я генерирую. Теперь у меня также есть две другие модели для перечисления оцененных продуктов и рабочей силы, необходимой для работы. Эти две модели связаны с "основной" оценочной моделью с внешним ключом. Для этих двух моделей я собирался использовать встроенные наборы форм, поскольку по умолчанию они ссылаются на другую запись через внешний ключ.

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

Было бы лучше сделать это двухэтапным процессом: Шаг 1) Создать и сохранить базовые данные (тем самым создав первичный ключ, с которым можно связать) Шаг 2) Добавить записи о продуктах и ​​трудовых ресурсах, связывая их внешним ключом основной записи., Просто кажется, что это будет плохой дизайн пользовательского интерфейса (с двумя шагами).

Мысли?

Спасибо!

1 ответ

Мне интересно, возможно ли создать основную запись оценки (базовые данные) одновременно с двумя встроенными формами?

Это, собственно, и способ админа (django.contrib.admin) делает это для встроенной формы.

Если вам не хочется погружаться в этот код, вы можете попытаться использовать транзакции для объединения всех изменений в базе данных, чтобы вы могли откатить их все при необходимости. Это предполагает, что ваша внутренняя база данных поддерживает транзакции, конечно.

Другие вопросы по тегам