Django模型用于多外键和通过表单获取输入

Django模型用于多外键和通过表单获取输入,django,django-models,one-to-many,modelform,Django,Django Models,One To Many,Modelform,我试图构建包含多层外键的SCM模型,然后以一种形式为它们获取输入。例如,当制定采购订单时,它可能包含多个产品,这些产品可能在多个装运中装运。装运定义为一组具有相同来源和目的地的集装箱,在同一贸易单据下于同一日期启运。每个容器可能包含多个产品,在极少数情况下,一个产品的库存可能属于多个采购订单。一个集装箱不能属于多个装运。构建这些关系的最佳方式是什么?我如何使用一个模板通过表单获取输入并通过视图保存它们 下面是我试图建立的一些关系。我不确定这门课和人际关系是否是最好的设计。如对整体结构有任何反馈,

我试图构建包含多层外键的SCM模型,然后以一种形式为它们获取输入。例如,当制定采购订单时,它可能包含多个产品,这些产品可能在多个装运中装运。装运定义为一组具有相同来源和目的地的集装箱,在同一贸易单据下于同一日期启运。每个容器可能包含多个产品,在极少数情况下,一个产品的库存可能属于多个采购订单。一个集装箱不能属于多个装运。构建这些关系的最佳方式是什么?我如何使用一个模板通过表单获取输入并通过视图保存它们

下面是我试图建立的一些关系。我不确定这门课和人际关系是否是最好的设计。如对整体结构有任何反馈,将不胜感激。如果我想在一个HTML模板中收集有关采购订单和相关装运、容器和产品的信息,我应该如何使用Django表单

下面是一些伪代码,例如:


类PurchaseOrder(models.Model):
issuedBy=models.ForeignKey(“公司”)
issuedAt=models.DateTimeField()
类别装运(型号.型号):
purchaseOrder=models.ManyToManyField('purchaseOrder')
origin=models.ForeignKey('Address',related_name='origin')
destination=models.ForeignKey('Address',related\u name='destination\u for')
shippedAt=models.DateTimeField()
类别装运集装箱(型号.型号):
发货=型号。ForeignKey(“发货”)
containerType=models.ForeignKey('containerType')
loadType=models.ForeignKey('loadType')
类别装运\集装箱\产品(型号.型号):
Shipping\u container=models.ForeignKey(“Shipping\u container”)
product=型号。ManyToManyField(“产品”)
数量=型号。整型字段()

你不能这样问“我应该如何编写此代码”。在我看来,这是一个很难在一个页面中完成的UI。但也许你得到了产品经理的设计。但我会首先从用户界面的角度考虑,以了解需要哪些表单以及如何提交数据。此外,当关系表示许多对象时,请使用复数:
purchase\u orders=ManyToManyField…
。请记住,相关名称用于反向关系,也应该是复数,因此,对于
来源地
出发装运
目的地
到达装运
可以使用
一些地址。出发装运。all()
。我会在水平幻灯片系统上使用多个表单。IE:form1是html页面幻灯片一上的采购订单。然后单击next,发送一个Ajax请求,如果经过验证,可以滚动HTML。如果不是,JSON响应将给出错误消息。这应该同时保持它的整洁和易于理解,