我正在设计一个Django库存跟踪应用程序,并且在模型布局中遇到了障碍。我有一个清单对象列表(Assets
),它可以存在于Warehouse
或Shipment
中。我想为两种类型的位置存储不同的属性列表,例如:
Warehouse
,我想存储地址,经理等Shipment
,我想存储运营商,跟踪号码等由于每个Warehouse
和Shipment
可以包含多个Asset
,但每个Asset
一次只能在一个位置,因此添加ForeignKey
与Asset
模型的关系似乎是要走的路。但是,由于Warehouse
和Shipment
对象具有不同的数据模型,我不确定如何最好地执行此操作。
一个明显(有点难看)的解决方案是创建一个Location
模型,其中包含所有Shipment
和Warehouse
属性以及is_warehouse
布尔属性,但是这个让我感觉像是一块混蛋。有没有更清晰的方法来解决这类问题(或者是否有任何非Django Python库可能更适合这个问题?)
答案 0 :(得分:1)
如何在资产上使用通用外键?
答案 1 :(得分:0)
我认为创建一个“直通”表格非常合理,例如location,它关联资产,内容(外键)和content_type(仓库或货件)。您可以在asset_fk上设置一个唯一约束,以便它一次只能存在于一个位置