Как сохранить Глобальную переменную в представлении Django

Можно ли в представлениях 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 ответа


Вы можете использовать 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'


Вы можете использовать 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')

Есть идеи?

10000