我正在为自行车商店写一份申请表。我需要能够为Repairs
分配许多Transaction
(即平面修复)。每个维修都有名称,描述和价格。每笔交易都有一个repairs
字段。对于Transaction
,我有
repairs = models.ManyToManyField(Repair, blank=True)
这具有逻辑意义。但是,将有大约40多种不同类型的维修。当我为交易添加维修时,我不想每次创建新交易并添加维修时都必须创建Repair
的新实例 - 我只想拥有指向特定修复的指针。 换句话说,Repair
充当可能的维修清单,包含价格和说明,Transaction
有一个指向这些维修清单的字段。此外,我的Transaction
中的字段需要能够指定每个修复是否已完成。
我需要为Item
指向的Transaction
(即一个管子)做同样的事情。
我不确定如何在Django中执行此操作。我可能会过度思考它,或者我的数据库设计可能很差。
答案 0 :(得分:0)
这听起来像是一个合理的设计,内置的ManyToManyField
是该架构的不错选择。
就用户界面而言,如果您使用Django表单模块构建表单并接收和验证数据,我建议MultipleChoiceField
可能是您选择{Repair
的最佳选择。 {1}}与Transaction
关联的对象。 (https://docs.djangoproject.com/en/dev/ref/forms/fields/#multiplechoicefield)。在这种情况下,您可以使用Repair
方法格式过滤交易的可用__init__
。