我正在用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')
用一个 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')