Python Django将计算值保存到模型
:) 我是Django初学者,我想向你们这些漂亮的人寻求一些帮助 以下是我试图实现的目标: 我有一个模型-如下所示-我想包含每个符号的分数Python Django将计算值保存到模型,python,django,django-models,Python,Django,Django Models,:) 我是Django初学者,我想向你们这些漂亮的人寻求一些帮助 以下是我试图实现的目标: 我有一个模型-如下所示-我想包含每个符号的分数 class Stock_Score(models.Model): Symbol = models.CharField(max_length=20, null=True) Score = models.FloatField(null=True) 为了计算这个分数,我想使用第二个模型,它包含一个股票列表和一个称为Yrs的每个符号的值: cla
class Stock_Score(models.Model):
Symbol = models.CharField(max_length=20, null=True)
Score = models.FloatField(null=True)
为了计算这个分数,我想使用第二个模型,它包含一个股票列表和一个称为Yrs的每个符号的值:
class Stock_Data(models.Model):
Symbol = models.CharField(max_length=20, null=True)
Yrs = models.FloatField(null=True)
所以我想的是在我的views.py中导入Stock_数据模型,循环符号,检查一个简单的if/else,然后将结果保存到我的第一个模型的“Score”字段下
大概是这样的:
data = Stock_Data.objects.all()
for i in data:
if i.Yrs > 10:
Score = 1
else:
Score = 0
Score.save()
对此垃圾代码深表歉意,但我想知道如何才能做到这一点:)
提前感谢。您可以计算
Stock\u Data
对象的数量,对于这些对象,Yrs
大于10,使用:
from django.db.models import Count, Q
qs = Stock_Data.object.values('Symbol').annotate(
nYgt10=Count('Yrs', filter=Q(Yrs__gt=10))
).order_by('Symbol')
接下来,我们可以创建Stock\u Score
对象并将其保存到数据库中:
Stock_Score.objects.bulk_create(
[Stock_Score(Symbol=row['Symbol'], Score=row['nYgt10']) for row in qs]
)