渲染并发布该数据JQuery

时间:2017-02-01 15:10:16

标签: jquery html ajax django post

我有点卡在这里,希望得到社区的一些意见。

所以我有一个包含表格的HTML页面,其中一列只填充了复选框,此表下面是我的伪'提交'按钮,当点击它时它将扫描表并获取任何键选中复选框,这一切都很好。

我无法工作的部分是我希望发布(移动)到另一个页面/模板的渲染数据。

我尝试过:

  • 为此,我尝试使用AJAX将数据发布到视图中 但是我意识到并且读到我无法重定向 在我的AJAX调用中渲染一个新模板。

  • 具有不可见字段的表单。我将按钮设置为实际的提交按钮,当数据呈现时,我将其插入表单字段。逻辑很好然而我无法让它重定向,'action =“myurl /”'只是更改了URL但保留了相同的模板,它忽略了urls.py文件,告诉它加载一个新的视图+模板< / p>

  • 我也尝试通过JQuery发布但是这给了我一个CSRF错误,即使使用令牌和CSRFgetCookie.js(我可能在这里遗漏了一些东西,告诉我,如果我)但我也无法想出如何发布渲染数据。

感谢您的阅读,我们将非常感谢您能分享的任何指示和想法

编辑:注意,我想说明我想要对数据做什么,复选框表示要打印变量的对象,所以如果你想打印它,你会选中复选框并点击按钮将对象的PK发布到视图中,在那里您将呈现“打印表单”(打印对象的样式页面),然后重定向到新模板,向用户显示对象的“打印表单”他们从这里选择他们确认他们希望打印,就是这样。

EDIT2 :(尝试不可见字段解决方案的代码)

<form id="passer" method="POST" action="{% url 'Sizer:printView' %}">
    {% csrf_token %}
    <input type="hidden" id="vals">
    <input type="button" value="Print all selected items" id="printBut"></button>
</form>

在动作栏中,我也试过='printview /',只是更改了网址,但没有渲染新页面。

网址代码:

app_name  = 'Sizer'
urlpatterns = [
    url(r'^$', views.mainView, name='home'),
    url(r'^printables/', views.dataView, name='printables'),
    url(r'ajax$', views.ajax, name='ajax'),
    url(r'renderprint$', views.render_print_data, name='render_print_data'),
    url(r'printables/printview/$', views.printView, name='printView'),
]

观看代码:

从此视图中呈现页面(和表单):

def dataView(request):
    logging.basicConfig(filename='datalogger.log',level=logging.DEBUG)
    qs = {}
    qs = HeatExchanger.objects.all().order_by('date_created').reverse()

    try:
        data = [display_data(x) for x in qs if x is not None]
        pks = [q.pk for q in qs if q is not None]
    except Exception as e:
        logging.error(e)

    template = "Sizer/printables.html"
    context = {'data':data, 'pks':pks, 'form':form}
    return render(request,template,context)

查看我将数据发布到:

def printView(request):
   print("Inside print View")
   to_print = str(request.POST.get('extendo', ''))
   template = "Sizer/printview.html"
   context = {'to_print':to_print}
   return render(request, template, context)

此视图是针对不同的发布方法编写的。从trixn所说的我认为我希望大多改变它。

0 个答案:

没有答案