我使用Python2.7和Django 1.6开发了一个应用程序,它使用下面的滑动条允许用户使用多页SessionWizardView
形式对各种图像进行评级。用户评分存储在变量value
。
作为要求之一,每个用户必须验证他们在表单的后一页上为每个图像提供的评级。因此,我必须重新显示每个图像以及滑块,该滑块必须显示用户先前给出图像的相同等级。例如。如果用户先前将图像评级为“+19”,则在用户第二次看到图像时必须将滑块设置为“+19”。
我有应用程序重新显示图像,我可以轻松地为每个图像添加一个滑块。但我不知道如何让新滑块以先前提交的值开始。注意:有多个图像采用相同的形式,每个图像都需要验证。
问题:如何存储JQuery提交的变量并在Python / Django项目的后期重用它?
$(function () {
var initX=0,minX=50,width=400;
var slider = $('#slider'),
tooltip = $('.tooltip');
slider.slider({
min: -50,
max: +50,
value: 0,
start: function (event, ui) {
tooltip.fadeIn('fast');
},
slide: function (event, ui) {
var value = slider.slider('value'),
volume = $('.volume');
console.log(value)
tooltip.css('left', initX+(value*width)/100).text(ui.value); accordingly
},
stop: function (event, ui) {
},
});
initX=slider.slider("value");
var txt=initX;
initX+=(minX*width)/100;
tooltip.css('left',initX).text(txt);
});
我原本想使用Python / Django滑块,但从来没有找到效果很好的滑块。
任何帮助,甚至是我应该开始寻找的建议都将非常感激。这是我第一次构建应用程序,所以每一步对我来说都是新的。
由于
答案 0 :(得分:2)
您有两个选择来保留帖子中的值:通过@Pointy建议的Django模型实例将其存储在数据库中,或者您可以在会话中暂时保留它,完成其余步骤并执行做任何你需要做的事。
您可以轻松地将Django视图中的值传递给JavaScript。此示例显示如何传递已发布的值,或使用初始GET中的值。
# views.py
def your_view(request):
if request.method == 'POST':
foo = request.POST.get('foo')
else:
foo = 'bar'
return render('your_template.html', {'foo': foo})
# your_template.html
<p>Some html</p>
<script>
var foo = '{{ foo }}';
</script>
如果您的JavaScript位于外部文件中,您始终可以在包含之前的脚本块中设置值,以便外部文件可以将其选中:
<script>
var foo = '{{ foo }}';
</script>
<script src="{% static 'js/your-file.js' %}"></script>
希望能帮到你。