Вы не можете изменять переменные Python / Django в JavaScript.Вы должны создать отдельный URL-адрес и представление в Django и вызывать это представление асинхронно с ajax после завершения видео.Вы должны передать идентификатор пользователя в представлении, а затем поднять его views_num и вернуть, например, JsonResponse.Смотрите код ниже.Конечно, вы должны передать пользователя в контекст шаблона, чтобы использовать {{ user.id }}
в $.get
.
urls.py
path('user/count-views/<int:user_id>', views.count_views, name='count_views')
views.py
def count_views(request, user_id=None):
user = get_object_or_404(User, id=user_id)
user.views_num += 5
user.save()
return JsonResponse(data=user.views_num, safe=False)
# Call count_view via constructed url after video has ended
videoE1.addEventListener('ended', function () {
$.get("user/count-views/" + {{ user.id }});
}, false);