Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django的一对多字段_Python_Django - Fatal编程技术网

Python Django的一对多字段

Python Django的一对多字段,python,django,Python,Django,我有一门课: class PurchaseOrder(models.Model): product = models.CharField(max_length=256) dollar_amount = models.FloatField() item_number = models.AutoField(primary_key=True) 我正在努力使“产品”具有一对多的领域。换句话说,每当我在django的默认管理页面中添加新项时。我希望能够有一个选择,即为相同的美元金

我有一门课:

class PurchaseOrder(models.Model):
    product = models.CharField(max_length=256)
    dollar_amount = models.FloatField()
    item_number = models.AutoField(primary_key=True)
我正在努力使“产品”具有一对多的领域。换句话说,每当我在django的默认管理页面中添加新项时。我希望能够有一个选择,即为相同的美元金额和项目编号放置多个“产品”

回应海德·范德海德的评论。你会这样做吗

class PurchaseOrder(models.Model):
    product = models.ManyToManyField(Order)
    dollar_amount = models.FloatField()
    item_number = models.AutoField(primary_key=True)

class Order(models.Model):
    order_product = models.CharField(max_length =256)
    def __unicode__(self):
         return self.order_product

不,您的编辑不正确。这意味着采购订单可能属于多个订单,反之亦然,这毫无意义。您需要从PurchaseOrder到Order的简单ForeignKey。

看看解决方案,看看它们是如何工作的,它们会给您一些提示。Django的这项民意调查也为你提供了一个如何处理众多和外国关键关系的想法。最重要的是,将你的对象写在一张纸上,以可视化工作流,这很有帮助!我想要一个一对多的领域,我所要求的是正确的吗?或者这是一个多对多的领域?或者这是一个多对一字段?您可能不需要这两个字段,而是创建一个中间模型,例如,
订单
(将fk保存到
客户
付款
)、
订单项
(将数量和fk保存到产品和订单)和
产品
。这将允许
order.orderitem\u set.all
参考。免责声明:这完全取决于适合您需求的解决方案。