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

标签 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:
    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() 函数检索一些数据。这会将数据添加到输入框“pmids”。这些将被转换到 View 中,变量将被添加到 session 中。

如何让 Django 从 View 中返回任何内容?所以,没有新页面,没有重新加载。只有请求对象(保持 session )

最佳答案

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

链接:

关于Python Django 不返回新页面也不重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30802431/

相关文章:

python - 如何从 bash 脚本执行多行 python 代码?

Python如何使用tensorflow-cpu

Linux - 加入两个独立的 SSH 连接

java - 如何查看 session 中是否添加或删除了所有数据?

python - 分布式 Mxnet 训练中权限被拒绝

python - Tkinter 设置输入文本格式

python - django excel xlwt

python - Django:我可以重定向点击/admin/的未经身份验证的用户吗

python - html 文件中的 {{ form }} 未渲染

android - 管理 Android 应用程序 cookie