Это может быть сложным объяснением. Вот и все.
В рамках этой проблемы есть две модели, Asset
и AssetGroup
. AssetGroup
содержит информацию о «группе» активов (например, бренд, модель, характеристики), а Asset
содержит информацию об отдельных активах (например, стоимость, дата покупки, причина покупки, группа активов).
Очевидно, что существует связь между двумя моделями (например, активы принадлежат определенной «группе»).
Таким образом, сотрудник этой компании собирается добавить продукт в базу данных, используя интерфейс администратора Django, и ему нужно выбрать группу, к которой должен принадлежать их актив. Поле выбора для группы активов показывает метод __unicode__
для каждой группы активов (конечно), а метод __unicode__
, который я использую, представляет собой объединение бренда, модели и подмодели группы активов:
def __unicode__(self):
return self.asset_brand + " " + self.asset_product + " - " + self.asset_subproduct
Достаточно просто.
Теперь в таблице AssetGroup
есть несколько записей, которые заканчиваются одним и тем же выводом метода __unicode__
, например, Есть два предмета с:
asset_brand = 'Apple'
asset_product = 'Macbook Pro'
asset_subproduct = 'Mid-2009'
так что они выглядят точно так же. Причина, по которой они являются отдельными записями, заключается в том, что в AssetGroup
есть поле с именем asset_description
, которое содержит дополнительную информацию о AssetGroup
(например, первый объект Macbook Pro AssetGroup
может иметь 4 ГБ ОЗУ, и второй объект AssetGroup
может иметь 8 ГБ ОЗУ.
Итак, очевидно, что два разных продукта выглядят одинаково в окне выбора, когда клиент вводит актив в базу данных. Я хотел бы (динамически, с помощью JS) показать выбранные AssetGroup
asset_description
клиенту, когда они вводят Asset
в базу данных.
Есть ли в Джанго что-нибудь, что делает это? В противном случае, я думаю, я мог бы перепроектировать свою базу данных, но я действительно не хочу.