django模型中的多对多数组字段。

问题描述 投票:1回答:1

我正在用django建立一个工单模型。我希望有一个数组字段,用于记录需要的零件数量,另一个数组字段用于记录生产的零件数量。这些零件是来自我已经创建的一个库存应用程序中的模型的外键。根据我所读到的,PostgreSQL不允许在数组字段中使用外键,所以我需要在一个新的模型中设置一个多对多字段。但我不知道如何构建,最好的方法是什么?

模型.py

from django.db import models
from django.contrib.postgres.fields import ArrayField
from inventory.parts.models import partslist

# Create your models here.
class jobs(models.Model):
    jobid = models.CharField(max_length=100)
    partsrequired = ArrayField(
        ArrayField(
            models.ForeignKey(partslist, on_delete=models.CASCADE)
        )
    )
    partsproduced = ArrayField(
        ArrayField(
            models.ForeignKey(partslist, on_delete=models.CASCADE)
        )

class instruction(models.Model):
    job = models.ForeignKey(jobs)
    pdf = models.FileField(upload_to='pdf')
arrays django model key field
1个回答
0
投票

用一个 ManyToManyField [Django-doc]:

class Job(models.Model):
    jobid = models.CharField(max_length=100)
    partsrequired = models.ManyToManyField(partslist, related_name='required_for_jobs')
    partsproduced = models.ManyToManyField(partslist, related_name='produced_for_jobs')
© www.soinside.com 2019 - 2024. All rights reserved.