Использование выбранных полей из ModelMultipleChoiceField для выполнения SQL-запроса

Я изучаю Django и пытаюсь сделать кое-что, что может показаться неортодоксальным. В forms.py у меня есть следующий класс:

class CompareFormClient(forms.ModelForm):
class Meta:
    model = OrderFile
    fields = ['origine']

items = forms.ModelMultipleChoiceField(
    widget=FilteredSelectMultiple(
        'items',
        False,
    ),
    queryset=OrderFile.objects.all().values_list('reference', flat=True)
)

В models.py у меня есть эти два класса:

class OrderFile(models.Model):
    uploadedfile = models.ForeignKey(File, on_delete=models.CASCADE, default=1)
    ean = models.CharField(max_length=50)
    designation = models.TextField(blank=True)
    reference = models.CharField(max_length=200)
    quantite = models.IntegerField()
    prix_unitaire = models.IntegerField(blank=True)
    prix_total = models.IntegerField(blank=True)
    poids_unitaire = models.IntegerField(blank=True)
    poids_total = models.IntegerField(blank=True)
    composition = models.TextField(blank=True)
    origine = models.IntegerField(blank=True)
    nomenclature_douaniere = models.CharField(max_length=50)
    reference_transport = models.CharField(max_length=50)


class DeliveryFile(models.Model):
    uploadedfile = models.ForeignKey(File, on_delete=models.CASCADE, default=1, db_constraint=False)
    ean = models.CharField(max_length=50)
    designation = models.TextField(blank=True)
    reference = models.CharField(max_length=200)
    quantite = models.IntegerField()
    prix_unitaire = models.IntegerField(blank=True)
    prix_total = models.IntegerField(blank=True)
    poids_unitaire = models.IntegerField(blank=True)
    poids_total = models.IntegerField(blank=True)
    composition = models.TextField(blank=True)
    origine = models.IntegerField(blank=True)
    nomenclature_douaniere = models.CharField(max_length=50)
    reference_transport = models.CharField(max_length=50)

Обе модели OrderFile и DeliveryFile уже заполнены данными. В моей форме я выбираю значения из следующего набора запросов : queryset=OrderFile.objects.all().values_list('reference', flat=True).

Моя цель - выполнить SQL-запрос, чтобы найти любые различия с выбранными значениями (из ModelMultipleChoiceField) между двумя таблицами. Этот SQL-запрос будет выглядеть следующим образом:

SELECT
    id --want to use the selected values from the django form here
FROM
    foo
FULL OUTER JOIN bar USING (id)
WHERE
    foo.id IS NULL
OR bar.id IS NULL;

Есть ли у вас идеи о том, как я могу это сделать? Я буду очень благодарен, если кто-нибудь поможет мне с этой просьбой.

Вернуться на верх