Создайте запрос, объединяющий две независимые таблицы с общим внешним ключом - PullRequest
1 голос
/ 06 ноября 2019

У меня есть две модели, одна для потребления товаров на складе, другая для производства товаров. Мой доступный инвентарь на единицу - это сумма потреблений минус сумма выходов для каждого предмета. Как я могу сделать это в запросе в Django?

Я пытался использовать Django ORM, но, видимо, он предназначен только для объединения моделей с зависимостями друг от друга.

ЭТО МОДЕЛЬ ДЛЯ ВЫХОДА ТОВАРА. ЕГО НАХОДИТСЯ В ПРИЛОЖЕНИИ, ПОЗВОЛЯЕТ СКАЗАТЬ «1» МОЕГО ПРОЕКТА.

class OutputPosition (models.Model):

created_at = models.DateTimeField(auto_now=True, null=False)
output = models.ForeignKey(Output, related_name='outputs', on_delete=models.CASCADE)
item = models.ForeignKey(Item, related_name='output_items', help_text='Nombre del artículo', on_delete=models.SET_DEFAULT, default=999999999)
quantity = models.SmallIntegerField(null=False, help_text='Ingrese el número de artículos')
comments = models.CharField(max_length=256, null=True, help_text='Comentarios')

def get_item_name(self):
    return self.item.name

def __str__(self):
    return str(self.pk)+' '+self.item.name

ЭТО ОДИН НИЖЕ НИЖЕ МОДЕЛЬ ДЛЯ ПОТРЕБЛЕНИЯ ТОВАРОВ. Расположен в другом приложении.

Класс Positions (models.Model):

created_at = models.DateTimeField(auto_now=True, null=False)
intake = models.ForeignKey(Intake, related_name='intakes', on_delete=models.CASCADE)
item = models.ForeignKey(Item, related_name='intake_items', help_text='Nombre del artículo', on_delete=models.SET_DEFAULT, default=999999999)
quantity = models.SmallIntegerField(null=False, help_text='Ingrese el número de artículos')
comments = models.CharField(max_length=256, null=True, help_text='Comentarios')

def get_item_name(self):
    return self.item.name

def __str__(self):
    return str(self.pk)+' '+self.item.name

class Meta:
    verbose_name_plural = "Positions"

У меня есть один вид, который я хочу использовать для расчета суммы всех поступлений - сумма всехвыводит для каждого элемента и отображает его в виде HTML-таблицы.

...