我想計算每個用戶的鍛煉量,然后附加它以便我可以使用 chart.js 中的值。
這是由乘以計算reps,series并且,weight在所有的鍛煉一個用戶擁有所有練習。
我有以下型號:
class Exercise(models.Model):
exercise = models.CharField(max_length=166)
series = models.IntegerField(null=True, validators=[RegexValidator(r'^[0-9]*$')])
reps = models.IntegerField(null=True, validators=[RegexValidator(r'^[0-9]*$')])
weight = models.DecimalField(max_digits=5, decimal_places=1, null=True, blank=True)
class Workout(models.Model):
member = models.ForeignKey(Member, on_delete=models.CASCADE)
day = models.CharField(max_length=1, blank=True, null=True, verbose_name="Dias")
exercises = models.ManyToManyField(Exercise, blank=True)
為了嘗試計算鍛煉量,我在視圖中使用了以下內容:
data = []
workout = Workout.objects.filter(member=request.user.member)
for p in workout:
exercise = p.exercises.aggregate(total=Sum(F('reps') * F('series') * F('weight'))).values()
for d in exercise:
data.append(d)
這反過來又回傳每一天的總和。因此,如果用戶進行了 2 次鍛煉,它將回傳(示例)["4350.0", "7350.0"]
如何計算所有天數的總和。因此,在此示例的情況下,最終值將是["11700.0"]。
uj5u.com熱心網友回復:
我希望這會給你預期的結果,
result = Exercise.objects.filter(
workout__member=request.user.member
).aggregate(
total=Sum(F('reps') * F('series') * F('weight'))
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/365351.html
