django - 用于多个外键并通过表单获取输入的 Django 模型
问题描述
我正在尝试构建涉及多层外键的 SCM 模型,然后以一种形式为它们获取输入。例如,当一个采购订单下达时,它可能包含多个产品,这些产品可能分多次装运。货物被定义为一组具有相同来源和目的地的集装箱在同一贸易文件下于同一日期离开。每个容器可能包含多个产品,在极少数情况下,一个产品的库存可能属于多个采购订单。一个集装箱不能属于多个货物。构建这些关系的最佳方式是什么?以及如何使用一个模板通过表单获取输入并通过视图保存它们?
以下是我试图建立的一些关系。我不确定这个类和关系是否是最好的设计。任何关于整体结构的反馈将不胜感激。如果我想在一个 HTML 模板中收集有关采购订单和相关货物、集装箱和产品的信息,我应该如何使用 Django 表单?
下面是一些伪代码,例如:
class PurchaseOrder(models.Model):
issuedBy = models.ForeignKey('Company')
issuedAt = models.DateTimeField()
class Shipment(models.Model):
purchaseOrder = models.ManyToManyField('PurchaseOrder')
origin = models.ForeignKey('Address', related_name='origin_for')
destination = models.ForeignKey('Address', related_name = 'destination_for')
shippedAt = models.DateTimeField()
class Shipment_Container(models.Model):
shipment = models.ForeignKey('Shipment')
containerType = models.ForeignKey('ContainerType')
loadType = models.ForeignKey('LoadType')
class Shipment_Container_Product(models.Model):
shipment_container = models.ForeignKey('Shipment_Container')
product = models.ManyToManyField('Product')
quantity = models.IntegerField()
解决方案
推荐阅读
- java - InvalidKeyException:无效的密钥格式 java
- python - 散景中的标签文本位置
- c++ - 使用 C++ 继承的构造函数调用流
- ruby-on-rails - 新版本的 gem 未反映在引擎的 gemfile.lock 中
- android-studio - Android Studio / Flutter / Nexus 6 API 30上的GestureDetector OnTap延迟
- java - 为什么我们使用Java虚拟机?
- c++ - 未调用重载的赋值运算符
- javascript - 将函数名称设置为字符串 - Javascript
- linux - Electron - 如何在 linux 上创建深度链接
- amazon-dynamodb - 有没有我可以使用 boto3 从 get_item 的结果中排除 attitube