我有点卡在这里,希望得到社区的一些意见。
所以我有一个包含表格的HTML页面,其中一列只填充了复选框,此表下面是我的伪'提交'按钮,当点击它时它将扫描表并获取任何键选中复选框,这一切都很好。
我无法工作的部分是我希望发布(移动)到另一个页面/模板的渲染数据。
我尝试过:
为此,我尝试使用AJAX将数据发布到视图中 但是我意识到并且读到我无法重定向 在我的AJAX调用中渲染一个新模板。
具有不可见字段的表单。我将按钮设置为实际的提交按钮,当数据呈现时,我将其插入表单字段。逻辑很好然而我无法让它重定向,'action =“myurl /”'只是更改了URL但保留了相同的模板,它忽略了urls.py文件,告诉它加载一个新的视图+模板< / p>
感谢您的阅读,我们将非常感谢您能分享的任何指示和想法
编辑:注意,我想说明我想要对数据做什么,复选框表示要打印变量的对象,所以如果你想打印它,你会选中复选框并点击按钮将对象的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所说的我认为我希望大多改变它。