Возможны ли вложенные встроенные формы в моделях Django Admin? - PullRequest
5 голосов
/ 11 августа 2009

Я собирался задать практически тот же вопрос, что и , этот . Однако, так как никто не ответил на это, я предполагаю, что вложенные встроенные формы невозможны.

Поэтому вместо этого я просто спрошу, как бы вы подошли к созданию чего-то подобного в Django:

Ритейлер продает одежду. Каждый дизайн свитера имеет номер Style. Этот стиль доступен в разных тканях и разных цветах, поэтому вам понадобится Таблица стилей и Таблица продуктов для работы с каждым вариантом свитера. (например, может быть синий хлопковый свитер, синий нейлоновый свитер, зеленый хлопок свитер и т. д. ...) Это будет содержать внешний ключ в Таблица ткани и Таблица цветов .

Но нам нужны картинки! Каждый вариант продукта может иметь одну или несколько картинок. Поэтому мы добавляем таблицу изображений с внешним ключом к таблице продуктов.

Без вложенных встроенных строк единственный способ представить это в CMS - это сначала добавить клиенту стиль, а также встроенные подчиненные продукты. Затем, когда закончите, откройте таблицу продуктов и разрешите встроенную загрузку изображений. (Возможно, снятие разрешения на добавление продуктов напрямую, чтобы они могли редактировать только существующие продукты.)

Но это как-то неубедительно, тебе не кажется?

Идеи приветствуются.

1 Ответ

2 голосов
/ 11 августа 2009

Я бы сделал это так.

Одна модель содержит информацию о продукте высшего уровня. Затем создайте связанную таблицу для информации о стиле / цвете, назовите ее ProductDetail - у нее будут внешние ключи для Product, Style, Color и Fabric, а также изображение и, возможно, поле SKU.

Тогда ваша форма импорта может использовать FK от ProductDetail до Product, чтобы показать детали, встроенные в основной продукт. Каждая строка имеет выпадающий список стиля, цвета и ткани, и каждое из этих полей будет использовать виджет FK Django, чтобы либо выбрать из существующих опций, либо вызвать всплывающее окно для добавления нового. Тогда поле изображения находится рядом с параметрами для каждой строки, поэтому оно является специфическим для этой отдельной комбинации.

Это работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...