Как хранить остатки на товарах в разделах товаров и датах в Джанго?
Я новичок в Джанго. Есть задача написать заявку на перемещение остатков на складе. Приложение должно иметь возможность получать данные в контексте продукта или товара в контексте даты или интервала дат, или в конкретную дату.
Теоретически я понимаю структуру модели:
- Модель продукта
- Типовой документ (документ о доходах / расходах)
- Модель DocumentRow (Табличная часть документа)
- Модель транзакций (промежуточная таблица для хранения балансов; здесь должны быть записаны балансы за каждый месяц).
Для пункта 4 вам необходимо записать остатки по месяцам и продуктам. Чтобы поддерживать актуальность данных в этой таблице, мне нужно пересчитать все сальдо после этой даты при написании DocumentRow на конкретную дату.
Пример:
- 10/01/2018 прибытие 10
- 15.10.08 Прибытие 20
- 12.12.2018 Расход 10
Записи в таблице транзакций (месяц, начальный баланс, конечный баланс)
- 01.10.2008 0 10
- 01.10.2008 10 30
- 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)