【发布时间】:2011-06-15 02:50:09
【问题描述】:
这可能是一个复杂的解释。就这样吧。
在这个问题的范围内有两个模型,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 对象可能有4GB 的RAM,第二个 AssetGroup 对象可能有 8GB 的 RAM)。
因此,当客户将资产输入数据库时,显然有两种不同的产品在选择框中看起来相同。当客户将Asset 输入数据库时,我想(动态地,使用 JS)向客户显示选定的AssetGroup 的asset_description。
在 Django 中有什么可以做到这一点的吗?如果没有,我想我可以重新设计我的数据库,但我真的不想这样做。
【问题讨论】:
标签: python django database-design models