поле "многие ко многим" в модели django - PullRequest
1 голос
/ 29 апреля 2020

Я создаю модель заказов на работу в django. Я хотел бы иметь поле массива для деталей, требуемых с количествами, и другое поле массива деталей, произведенных с количествами. Части будут внешними ключами от модели в приложении инвентаря, которое я уже создал. Из того, что я прочитал, PostgreSQL не позволит использовать внешние ключи в поле массива. поэтому мне нужно было бы иметь поле много ко многим в новой модели. Но я не уверен, как это построить. что было бы лучшим способом go об этом?

models.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')

1 Ответ

0 голосов
/ 29 апреля 2020

С ManyToManyField [Django -doc] :

class Job(models.Model):
    jobid = models.CharField(max_length=100)
    partsrequired = <b>models.ManyToManyField(</b>partslist, related_name='required_for_jobs'<b>)</b>
    partsproduced = <b>models.ManyToManyField(</b>partslist, related_name='produced_for_jobs'<b>)</b>
...