如何存储JQuery提交的变量,并在Python/Django项目的后期重用它

How to store a JQuery submitted variable and reuse it at a later stage in a Python/Django project?

本文关键字:Django Python 项目 并在 何存储 存储 变量 提交 JQuery      更新时间:2023-09-26

我使用Python2.7和Django 1.6开发了一个应用程序,该应用程序使用下面的滑动条允许用户使用多页SessionWizardView表单对各种图像进行评级。用户评级存储在变量value中。

作为要求之一,每个用户都必须在表单的后续页面上验证他们对每个图像的评分。因此,我必须重新显示每个图像以及滑动条,滑动条必须显示与用户之前对图像的评分相同的评分。例如,如果用户之前将图像评为"+19",则用户第二次看到图像时,必须将滑块设置为"+119"。

我已经让应用程序重新调整了图像,我可以很容易地为每个图像添加一个滑块。但我不知道如何让新的滑块从以前提交的值开始。注意:有多个相同形式的图像,每个图像都需要验证。

问题:如何存储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滑块,但一直没能找到一个运行良好的滑块。

任何帮助,甚至是我应该从哪里开始寻找的建议,都将不胜感激。这是我第一次构建应用程序,所以每一步对我来说都是新的

感谢

您有两种选择来持久化post中的值:如@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在一个外部文件中,你可以总是在include之前的脚本块中设置值,这样你的外部文件就可以获取它们:

<script>
    var foo = '{{ foo }}';
</script>
<script src="{% static 'js/your-file.js' %}"></script>

希望这能帮助你。