Рассчитать количество на складе - PullRequest
0 голосов
/ 02 апреля 2020

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

class Transaction(models.Model):
...
   transaction_type = models.PositiveIntegerField(choices=TYPE_CHOICES, db_index=True)
   date = models.DateTimeField(auto_now_add=True, db_index=True)
   comment = models.CharField(max_length=255, blank=True, null=True)
   status = models.PositiveIntegerField(choices=STATUS_CHOICES, default=1, db_index=True)
...

class TransactionItem(models.Model):
   transaction = models.ForeignKey(Transaction, on_delete=models.CASCADE)
   product = models.ForeignKey(product, on_delete=models.CASCADE related_name="product")
   stock_location = models.ForeignKey(warehouse_stock_locations, on_delete=models.CASCADE, verbose_name="Lagerplats", related_name="stock_location", blank=True, null=True)
   qty = models.IntegerField(default=0, blank=True, null=True)
   unit_cost = models.DecimalField(max_digits=12, decimal_places=2, blank=True, null=True)

, поэтому я хочу собрать количества во всех транзакциях, которые имеют status "2", что равно количеству завершенных запасов, доставке товаров, а status=1 и status=3 игнорируются. Затем я соберу все кол-во в TransactionItems и покажу на соответствующих страницах с описанием товара. Я посмотрел на различные примеры запросов, но все они приводят меня к ошибке.

Не могли бы вы указать мне правильное направление?

1 Ответ

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

кажется, я решил это сам.

решение:

t = TransactionItem.objects.filter(transaction__status=2)
t = t.filter(product_number=self.object).aggregate(Sum('qty'))
t = t.get('qty__sum')
print(t)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...