Как хранить остатки на товарах в разделах товаров и датах в Джанго?

Я новичок в Джанго. Есть задача написать заявку на перемещение остатков на складе. Приложение должно иметь возможность получать данные в контексте продукта или товара в контексте даты или интервала дат, или в конкретную дату.

Теоретически я понимаю структуру модели:

  1. Модель продукта
  2. Типовой документ (документ о доходах / расходах)
  3. Модель DocumentRow (Табличная часть документа)
  4. Модель транзакций (промежуточная таблица для хранения балансов; здесь должны быть записаны балансы за каждый месяц).

Для пункта 4 вам необходимо записать остатки по месяцам и продуктам. Чтобы поддерживать актуальность данных в этой таблице, мне нужно пересчитать все сальдо после этой даты при написании DocumentRow на конкретную дату.

Пример:

  1. 10/01/2018 прибытие 10
  2. 15.10.08 Прибытие 20
  3. 12.12.2018 Расход 10

Записи в таблице транзакций (месяц, начальный баланс, конечный баланс)

  1. 01.10.2008 0 10
  2. 01.10.2008 10 30
  3. 01.12.2008 30 20

Я не знаю, возможно ли реализовать это на django, на самом деле мне нужен аналог баланса оборота, мне нужно ваше мнение или новый взгляд на эту проблему

1 ответ

Вы можете переопределить предопределенный метод модели save() в ваших моделях, как в этом примере:

from django.db import models

class Example(models.Model):
myfield = models.CharField(max_length=100)

def save(self, *args, **kwargs):
    # Here you can put your logic
    # On this case I adding a prefix and sufix to myfield
    self.myfield = "{}{}{}".format('prefix ', self.myfield, ' sufix')
    # Now call the "real" save() method.
    super().save(*args, **kwargs)
Другие вопросы по тегам