python - 如何在 Django 中以某种速度增加模型类字段?
问题描述
我正在 Django 中创建一个产品页面(10 个产品),其中我需要以某种速度增加所有产品中的虚拟视图。
在给定的一天 N 中任何产品的虚拟视图 (D) 是D = N * Y * X
其中每个产品的 X 已经为每个产品随机选择(此后也将是恒定的),并且 Y 是每天从一组不同产品中随机抽取的。
所以基本上我需要增加每次刷新页面的浏览量,因此D/24*60
,每分钟浏览量都会增加。
我究竟如何才能以每分钟的某种速度增加我的浏览量?
模型.py
class Products(models.Model):
title = models.CharField(max_length = 100)
description = models.TextField()
views = models.IntegerField(null = True)
image = models.ImageField(upload_to = 'productImages/')
dateUploaded = models.DateField(auto_now_add=True)
Daytimestamp = models.DateField(auto_now_add=True)
actualViews = models.IntegerField(null = True)
class Meta:
ordering = ['title']
class Views(models.Model):
X = ArrayField(models.IntegerField(blank = True))
Y = ArrayField(models.FloatField(blank= True))
Viewtimestamp = models.DateTimeField(auto_now_add=True)
我在views.py 中的主页功能是
def home(request):
products = Products.objects.all()
views = Views.objects.all()
# caculate Days(N)
delta = (datetime.date.today()-products[0].dateUploaded)
if delta.days == 0:
Day = 1
else:
Day = delta.days + 1
# if next day then change Y
if datetime.date.today() != products[0].Daytimestamp:
makeY() #this function changes Y array
for product in products:
product.Daytimestamp = datetime.date.today()
product.save()
# give minutes passed since last update
delta = datetime.datetime.now(timezone.utc) - views[0].Viewtimestamp
print("Seconds passed", delta.seconds)
v0 = views[0]
v0.Viewtimestamp = datetime.datetime.now(timezone.utc)
v0.save()
minutes_passed = (delta.seconds)/60
for product in products:
DummyView = Day * views[0].X[product.id-1] * views[0].Y[product.id-1]
DummyViewPerMinute = (DummyView/(24*60))
product.views += (minutes_passed * DummyViewPerMinute)
product.save()
return render(request, '../templates/home.html', {'Products': products})
我正在跟踪上次更新视图的时间戳(Viewtimestamp),并按分钟增加视图,但视图似乎没有增加。
解决方案
推荐阅读
- java - 在不同布局中的另一个图像视图上设置一个图像视图
- php - PHP - 使用它们的关系从表中回显数据
- python - 基于 index 和 col 将函数应用于 Dataframe 中的每个单元格
- rubymine - 按下 Enter 时奇怪的 RubyMine 缩进
- node.js - Joi - 已知和未知键的混合
- firebase - 子集合的 Firestore 规则
- api - AXIOS POST 访问控制检查失败:没有 'Access-Control-Allow-Origin' .HTTP 状态代码 405
- galera - Galera Donor 并切换到另一台主机进行插入语句
- svg - SVG 外部对象大小不一致
- java - 不返回void的java虚拟方法