Я тоже рассчитал некоторые значения для 3000 элементов из базы данных. При выборе элемента в окне выбора поля должны быть заполнены jquery.
Я повторяю каждый элемент, отправляю его в словарь (имя элемента в качестве ключа и кортеж переменных в качестве значения) и передаю этот словарь в шаблон django.
Я отправляю словарь auto_dict в шаблоне. Каждый раз, когда пользователь выбирает значение из поля выбора, в функции change
я повторяю словарь и получаю значения.
Загрузка страницы занимает слишком много времени.
class Sales(models.Model): # sales detail of items
item_id = models.ForeignKey('Item', models.DO_NOTHING)
# some more fields
class Item(models.Model): # detail of items, around 3000 items
name = models.CharField(max_length=127)
# some more fields
class Order(models.Model): # order detail of each order
order_number = models.CharField(max_length=63, unique=True)
created_at = models.DateField(auto_now_add=True)
status = models.CharField(max_length=2, choices=STATUS, blank=True, null=True, default='NP')
final_approval = models.CharField(max_length=3,default='No')
order_type = models.CharField(max_length=2, blank=True, null=True, choices=ORDER_TYPE)
# some more fields
class Orderitems(models.Model): # item detail for all order
qty = models.IntegerField()
item_id = models.ForeignKey(Item, models.DO_NOTHING, blank=True, null=True)
order_id = models.ForeignKey(Order, models.DO_NOTHING, blank=True, null=True)
sales_id = models.ForeignKey(Sales, models.DO_NOTHING, blank=True, null=True)
# some more fields
-------- Отредактированная часть ---------
Я хочу получить сумму всех (разница между датой создания и сегодняшним днем).
created_at = models.DateField(auto_now_add=True)
Я использую это:
current_date = datetime.date.today()
time_diff = OrderItemTable.objects.annotate(days=Sum((F('prev_order_items__order_id__created_at')-current_date)))
но этот ответ дает 181715600.0. Я хочу что-то вроде этого:
1-й заказ - 01/07/2019, разность = 4 дня * 2 (количество)
2-й заказ - 03/07/2019, разность - 2 дня * 3 (количество)
Сумма = 14
Я еще не добавил умножающую часть продукта в запрос.
Это для каждого предмета.