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

时间:2017-02-08 11:01:17

标签: python django

我在Django应用程序视图中询问有关变量处理的问题。

我有两个功能:

  • 第一个允许我在display query result的数组中GET filter parameter(在我的情况下,用户写年份,Django根据今年返回所有对象。我们将调用{{1这个变量)。

  • 第二个让我创建一个query_naissance。我有很多变量,但我想在我的PDF中再花一次PDF

这是我的第一个功能:

query_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 添加到第二个函数中而不再写一个字段?

然后,我必须在我的HTML模板中将此变量称为query_naissance

谢谢

1 个答案:

答案 0 :(得分:5)

为了在请求之间保留信息,您可以使用会话。 Django非常好session support

# 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)

'django.contrib.sessions.middleware.SessionMiddleware'中需要MIDDLEWARE_CLASSES