С django обновлять пользователя каждую секунду, когда он вошел в систему - PullRequest
0 голосов
/ 01 августа 2020

Я создаю веб-сайт, на котором будут пользователи, которые могут входить в систему и делать что-то. Но каждую секунду, когда они входят в систему, я хочу уменьшить значение, связанное с этим пользователем (называемое time_left). Прямо сейчас я думаю о вызове метода при входе в систему, который затем будет работать непрерывно, пока пользователь не выйдет из системы. Поэтому я вызываю метод в представлении входа в систему под названием time_update:

def login(request):
    """
    View function.
    In case it is a POST request, the user login form is created and is checked
    if valid. If it is valid, it is processed checked if user can log in. Otherwise a
    response with the form is sent.
    """
    if request.user.is_authenticated:
        return redirect('home-page')
    if request.method == "POST":
        form = UserLoginForm(request, data=request.POST)
        if form.is_valid():
            email = form.cleaned_data.get('email')
            password = form.cleaned_data.get('password')
            user = authenticate(email=email, password=password)
            if user is not None:
                if user.is_active:
                    auth_login(request, user)
                    time_update(user.email)
            else:
                print("user is not authenticated")
            return redirect('home-page')  # user is redirected to dashboard
    else:
        form = UserLoginForm()
    return render(request, 'users/login.html', {'form': form})

Но я как бы застрял в том, что делать с этим методом time_update, который должен уменьшать значение time_left каждую секунду. Особенно для нескольких пользователей, которые вошли в систему одновременно. У кого-нибудь есть идеи?

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