Как использовать возврат двух раз в функции в 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,
            })
Вернуться на верх