首页 > 解决方案 > 用于多个外键并通过表单获取输入的 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()

标签: djangodjango-modelsone-to-manymodelform

解决方案


推荐阅读