Использование выбранных полей из 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;
Есть ли у вас идеи о том, как я могу это сделать? Я буду очень благодарен, если кто-нибудь поможет мне с этой просьбой.