Django проблема: views.py вызывается дважды, переменные переопределяются - PullRequest
0 голосов
/ 04 мая 2020

Я использую django для обработки пользовательских данных в json, полученном через API typeform (сервис, похожий на формы Google). После отправки своих типов шрифтов пользователи перенаправляются на мой django сервер, который передает обработанные данные на ссылку целевой страницы, где отображаются оценки пользователей.

Это работало некоторое время, но после большого количества времени назад и далее с разными версиями моего алгоритма функция views.py вызывается дважды. Что еще более странно - переменные переопределяются, что невозможно из-за структуры моего кода. Каждый счет в списке ниже не должен быть выше 40, но он умножается. После того, как я перезагружаю сервер, он снова хорош, но только для одного запроса GET, затем он снова становится беспорядочным, независимо от того, является ли это электронным письмом того же пользователя (использованным для идентификации его / ее отправки данных) или другим. Вот как это выглядит в моей консоли:

Django version 3.0.3, using settings 'demo_server.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

# First request:

user's scores: [['A', 30], ['R', 24], ['E', 20], ['I', 16], ['S', 16], ['C', 14]]
{correct link}
[04/May/2020 15:01:23] "GET /typeform/dan@hiry.pl HTTP/1.1" 302 0

# Second request:

user's scores: [['A', 100], ['R', 82], ['E', 70], ['I', 58], ['S', 58], ['C', 52]]
(i've added a few lines to identify when the scores are to high to redirect users to an error page)

{error page link}
[04/May/2020 15:01:26] "GET /typeform/dan@hiry.pl HTTP/1.1" 302 0
[04/May/2020 15:01:26] "GET /typeform/home HTTP/1.1" 200 42

# as you can see above, there are two requests happening the same second instead of one

Единственные потоки, которые я нашел в связи с этой проблемой, были либо довольно старыми, и были сосредоточены на формах django, которые я до сих пор не использовал (я мы постарались сделать мой сценарий настолько простым, насколько я мог) и / или полностью не восстановленным. Я пытался запретить это переопределение, по крайней мере, по ссылке перенаправления в скрипте (например, с quit()), но ничего не получалось.

Заранее спасибо и удачного дня всем вам:)

Редактировать 1: по запросу, вот как выглядит мой views.py:


from django.http import HttpResponse
from django.shortcuts import redirect
import time
import json
import requests

def typeform_redirect(request, tmail='kosma@hiry.pl'):
    # here the correct link for the user with a matching email is generated
    print(link)
    response = redirect(link)
    return response

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...