如何在不创建列表的情况下将其添加到python中
我有以下django的观点来计算问卷的平均分数如何在不创建列表的情况下将其添加到python中,python,python-3.x,django,list,loops,Python,Python 3.x,Django,List,Loops,我有以下django的观点来计算问卷的平均分数 @login_required def statistics(request, slug=False): qn = get_object_or_404(Questionnaire, slug=slug) questions = Question.objects.filter(questionnaire=qn).count() qs = Question.objects.filter(questionnaire=qn)
@login_required
def statistics(request, slug=False):
qn = get_object_or_404(Questionnaire, slug=slug)
questions = Question.objects.filter(questionnaire=qn).count()
qs = Question.objects.filter(questionnaire=qn)
responses = Response.objects.filter(question__in=qs, user=request.user).count()
if questions == 0 or responses == 0 or not questions <= responses:
return render(request, "questionnaire/stats.html")
out = {}
for q in qs:
response = Response.objects.filter(question=q, user=request.user).order_by("session_datetime").first()
out[q.category] = {}
time = response.session_datetime
time_string = time.strftime("%d/%m/%Y")
out[q.category][time_string] = []
responses_in_time = Response.objects.filter(question=q, user=request.user, session_datetime__gte=time,
session_datetime__lt=time + datetime.timedelta(hours=24))
for res in responses_in_time:
out[q.category][time_string] += [res.value]
print(out)
for category in out.keys():
print("outcat"+ str(out[category]))
for time in out[category].keys():
out[category][time] = sum(out[category][time])/len(out[category][time])
print(out)
return render(request, "questionnaire/stats.html", context={"questionnaire": qn, "stats_json": json.dumps(out)})
@需要登录\u
def统计信息(请求,slug=False):
qn=获取对象或404(调查问卷,slug=slug)
questions=Question.objects.filter(问卷=qn.count)()
qs=Question.objects.filter(问卷=qn)
responses=Response.objects.filter(question\uu in=qs,user=request.user).count()
如果问题==0或回答==0或不是问题好的,所以我不知道为什么我只能在我发布后才想到答案,但这是工作代码。通过两次循环,一次创建dict,一次填充dict,我解决了这个问题
@login_required
def statistics(request, slug=False):
qn = get_object_or_404(Questionnaire, slug=slug)
questions = Question.objects.filter(questionnaire=qn).count()
qs = Question.objects.filter(questionnaire=qn)
responses = Response.objects.filter(question__in=qs, user=request.user).count()
if questions == 0 or responses == 0 or not questions <= responses:
return render(request, "questionnaire/stats.html")
out = {}
response = Response.objects.filter(question=qs.first(), user=request.user).order_by("session_datetime").first()
time = response.session_datetime
time_string = time.strftime("%d/%m/%Y")
for q in qs:
out[q.category] = {}
out[q.category][time_string] = []
for q in qs:
responses_in_time = Response.objects.filter(question=q, user=request.user, session_datetime__gte=time,
session_datetime__lt=time + datetime.timedelta(hours=24))
for res in responses_in_time:
out[q.category][time_string] += [res.value]
print(out)
for category in out.keys():
print("outcat"+ str(out[category]))
for time in out[category].keys():
out[category][time] = sum(out[category][time])/len(out[category][time])
print(out)
return render(request, "questionnaire/stats.html", context={"questionnaire": qn, "stats_json": json.dumps(out)})
@需要登录\u
def统计信息(请求,slug=False):
qn=获取对象或404(调查问卷,slug=slug)
questions=Question.objects.filter(问卷=qn.count)()
qs=Question.objects.filter(问卷=qn)
responses=Response.objects.filter(question\uu in=qs,user=request.user).count()
如果问题==0或回答==0或不是问题