Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_Session - Fatal编程技术网

Python Django不返回新页面,也不重新加载

Python Django不返回新页面,也不重新加载,python,django,session,Python,Django,Session,我有以下看法: 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:

我有以下看法:

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>
{%csrf\u令牌%}
获取选定摘要作为参考
按下按钮将通过getChecked()函数检索一些数据。这将向输入框“pmid”添加数据。这些将被强制转换到视图中,变量将被添加到会话中


我怎么能让Django从视图中不返回任何内容?因此,没有新页面,没有重新加载。只有请求对象(保留会话)

您不需要返回请求对象来保留会话数据。使用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());
});
链接:


    • 您不需要返回请求对象来保存会话数据。使用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());
      });
      
      链接:


      你的意思是这样的?所以你建议创建一个Ajaxable响应对象并返回该响应?如果对象知道我只想返回请求,它会是什么样子?(因此,
      request.session[“session\u pmids”]=pmids
      您的意思是这样的吗?因此您建议创建一个Ajaxable响应对象并返回该响应?如果知道我只想返回请求,该对象会是什么样子?(因此,
      request.session[“session\u pmids”]=pmids