数据库是MySQL
我试图通过将date_created
字段分组并遍历每个查询来遍历模型中的所有字段。我已经能够这样做,但是我的方法似乎效率低下。有没有更好,更清洁的方法?该数据库预计将达到50,000行以北,并且具有长达一年的唯一日期。我计划在date_created
子查询的每个查询中进行复杂的工作,并且需要访问模型中的其他字段。我打算主要使用这些数据来使用Django和Heroku在网页上显示图表和内容。
data = model.objects.all()
distinct_dates = data.values('date_created').distinct()
for each_date in distinct_dates:
data.filter(date_created=each_date['date_created'])
each_date
的值将是与模型和该字段相关联的每个唯一日期
这是我的模特
class Model(models.Model):
expansion = models.CharField(max_length=255, default='', db_index=True)
value = models.DecimalField(max_digits=12, decimal_places=2, default=0)
date_created = models.DateField(db_index=True)
class Meta:
ordering = ['date_created', ]
答案 0 :(得分:2)
这个问题的答案取决于许多因素,其中一些是以下因素:
请考虑以下用例:
data = model.objects.all()
data_by_dates = model.order_by('date_created').values(
'date_created'
).annotate(
count=Count('date_created'), total=Sum('amount')
)
我可以想出更多的用例,但是除非您知道实际要做什么,并且知道所涉及的上下文,否则很难说出“最有效”的方式是什么。