Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在视图函数之间传递Django变量_Python_Django - Fatal编程技术网

Python 在视图函数之间传递Django变量

Python 在视图函数之间传递Django变量,python,django,Python,Django,我在问一个关于我的Django应用程序视图中的变量处理的问题 我有两个功能: 第一个函数允许我使用GET filter parameter在数组中显示查询结果(在我的例子中,用户写入年份,Django根据今年返回所有对象。我们将调用query\u naissance此变量) 第二个让我可以创建一个PDF。我有很多变量,但我想在我的PDF中再花一次时间query\u-naissance 这是我的第一个功能: @login_required def Table_annuelle_BirthCer

我在问一个关于我的
Django
应用程序视图中的变量处理的问题

我有两个功能:

  • 第一个函数允许我使用
    GET filter parameter
    在数组中
    显示查询结果
    (在我的例子中,用户写入年份,Django根据今年返回所有对象。我们将调用
    query\u naissance
    此变量)

  • 第二个让我可以创建一个
    PDF
    。我有很多变量,但我想在我的PDF中再花一次时间
    query\u-naissance

这是我的第一个功能:

@login_required
def Table_annuelle_BirthCertificate(request) :

    query_naissance = request.GET.get('q1')
    ...
    return render(request, 'annuel.html', context)
我的第二个函数如下所示:

@login_required
def Table_Naissance_PDF(request) :

    data = {"BirthCertificate" : BirthCertificate}

    template = get_template('Table_raw.html')
    html  = template.render(Context(data))

    filename = str('Table annuelle Naissance.pdf')
    path = '/Users/valentinjungbluth/Desktop/Django/Individus/' + filename


    file = open(path, "w+b") 
    pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file, encoding='utf-8')
    file.close()

    context = {
        "BirthCertificate":BirthCertificate,
        "query_naissance":query_naissance,
    }

    return render(request, 'Table.html', context) # Template page générée après PDF
那么,如何将用户在第一个函数中给出的
query\u-issance
添加到第二个函数中,而无需再写入一次字段

然后,我必须在HTML模板中调用这个变量,如
{{query_naissance}


谢谢

为了跨请求保存信息,您需要使用会话。Django有非常好的:


中间件类中需要
'django.contrib.sessions.middleware.SessionMiddleware'
,为了跨请求持久化信息,您将使用会话。Django有非常好的:


您的
中间件类中需要
'django.contrib.sessions.middleware.SessionMiddleware'

好的,我正在研究会话中的值存储。非常感谢!我只需要看看为什么我的变量没有显示在我的PDF上,但你的脚本似乎可以工作;)请添加答案以验证其有效性;)好的,我正在做一些关于价值存储的研究。非常感谢!我只需要看看为什么我的变量没有显示在我的PDF上,但你的脚本似乎可以工作;)请添加答案以验证其有效性;)
# view1: store value
request.session['query_naissance'] = query_naissance

# view2: retrieve vlaue
query_naissance = request.session['query_naissance'] 
# or more robust
query_naissance = request.session.get('query_naissance', None)