我有以下观点:
def addtolist(request):
var1 = request.session.get('session_pmids', False)
pmids = request.POST.get('pmids', '')
pmids = pmids.split(",")
if var1:
pmids = pmids + var1
request.session["session_pmids"] = pmids
if not var1:
request.session["session_pmids"] = pmids
return HttpResponse(None, request)
在模板中我有以下内容:
<form id="go" action="/addtolist/" method="post" data_url>{% csrf_token %}
<input type="hidden" name="pmids" id="pmids" value="">
<button class = "btn btn-default" onclick="getChecked()">Get selected abstracts as reference</button>
</form>
按下按钮将通过getChecked()函数检索一些数据。这将把数据添加到输入框&#39; pmids&#39;。这些将被转换为视图,变量将被添加到会话中。
我怎样才能让Django从视图中返回任何内容?所以,没有新页面,没有重新加载。只有请求对象(保持会话)
答案 0 :(得分:4)
您不需要返回请求对象来保留会话数据。使用Ajax
在django
from django.http import JsonResponse
def addtolist(request):
var1 = request.session.get('session_pmids', False)
pmids = request.POST.get('pmids', '')
pmids = pmids.split(",")
if var1:
pmids = pmids + var1
request.session["session_pmids"] = pmids
if not var1:
request.session["session_pmids"] = pmids
return JsonResponse({'status': 'ok')
的javascript
$('form#go').submit(function(e){
e.preventDefault();
$.post('view-url', $(this).serialize());
});
链接: