Как использовать возврат двух раз в функции в Django?
У меня есть модель под названием response. Если пользователь выбран в течение некоторого времени, то по истечении этого времени ответ превращается в значение по умолчанию. Но мне нужно вернуть значение, пока не закончится время выбора. Я думаю, что мне нужно использовать функцию async. Я просмотрел SO. но не смог найти никакого решения.
models.py
class Response(models.Model):
def_res = models.CharField()
expected_res = models.CharField()
current_res = models.CharField()
is_duration= models.BooleanField(default=False)
duration = models.PositiveIntegerField()
views.py
def manage_response(request):
if request.method == "POST":
a = Response.objects.filter(id=request.POST.get('resp_id'))
a.current_res = a.expected_res
a.save()
if not a.is_duration == True:
return JsonResponse(a.current_res)
else:
return JsonResponse(a.expected_res )
#after return won't work in sync
time.sleep(a.duration)
a.current_res = a.def_res
return JsonResponse(a.current_res)
Вы можете использовать dictionary при прохождении через JsonResponse.
def manage_response(request):
if request.method == "POST":
a = Response.objects.filter(id=request.POST.get('resp_id'))
a.current_res = a.expected_res
a.save()
if not a.is_duration == True:
return JsonResponse(a.current_res)
else:
a.current_res = a.def_res
return JsonResponse({
'current_res': a.current_res,
'expected_res': a.expected_res,
})