Как хранить остатки на товарах в разделах товаров и датах в Джанго? - PullRequest
0 голосов
/ 14 ноября 2018

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

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

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

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

Пример:

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

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

  1. 10/01/2018 0 10
  2. 10/01/2018 10 30
  3. 12/01/2018 30 20

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

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете переопределить предопределенный метод модели 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)
...