Как сохранить Глобальную переменную в представлении Django - PullRequest
0 голосов
/ 17 января 2020

В Django представлениях , возможно ли создать глобальную / сеансовую переменную и присвоить некоторое значение (скажем, отправленное через вызов Ajax) в представлении и использовать его в другом представлении ?

Сценарий, который я пытаюсь реализовать, будет выглядеть примерно так:

View view1 получает некоторые переменные данные отправлено через Ajax вызов:

def view1(request):
    my_global_value = request.GET.get("data1", '')    # Storing data globally

Затем сохраненная переменная используется в другом представлении, view2 :

def view2(request):
    my_int_value = my_global_value    # Using the global variable

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Вы можете использовать Session

Некоторые примеры из Django:

def post_comment(request, new_comment):
    if request.session.get('has_commented', False):
        return HttpResponse("You've already commented.")
    c = comments.Comment(comment=new_comment)
    c.save()
    request.session['has_commented'] = True
    return HttpResponse('Thanks for your comment!')

Отредактируйте настройку MIDDLEWARE и убедитесь, что она содержит 'django.contrib.sessions.middleware.SessionMiddleware'

Ваш request.session.get("key") также доступен в любом другом представлении.

0 голосов
/ 17 января 2020

Вы можете использовать Sessions, но вам лучше удалить его после того, как вы покончили с ним. В противном случае он будет сохраняться во время сеанса.

def index(request):
    task_created = ""
    if 'task_created' in request.session:
        task_created = request.session['task_created']
        del request.session['task_created']
    ...


def create_task(request):
    ...
    request.session['task_created'] = "ok"
    return redirect('index')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...