2014-10-04 64 views
0

我开发了一个使用Python2.7和Django 1.6的应用程序,该应用程序使用下面的滑动条来允许用户使用多页面形式对各种图像进行评分。用户评分存储在变量value中。如何存储JQuery提交的变量并在稍后的Python/Django项目中重用它?

作为要求之一,每个用户必须验证他们在表单后面的页面上给每张图片的评分。因此,我必须重新显示每个图像以及必须显示用户以前给出图像的相同评分的滑块。例如。如果用户以前以“+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滑块,但从来没有找到一个运行良好的滑块。

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

感谢

+1

我认为一般的答案是“使用数据库”。 – Pointy 2014-10-04 12:48:46

+0

你想要将数据保存在前端还是后端? – Arvoreniad 2014-10-04 13:16:52

+0

@Arvoreniad我不确定'persist'是什么意思?如果有帮助,我想将用户最终提交的内容存储在后端中? – Deepend 2014-10-04 13:22:20

回答

2

你有两个选择坚持从岗位价值:它存储在通过一个Django模型实例数据库作为@Pointy建议,或者你可以抓住它暂时在一个会议上,通过工作其余的步骤,并做你需要做的任何事情。

您可以轻松地将您的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> 

希望帮助你出。

+0

感谢您的帮助/建议。首先,我必须使用MySQL,但我会保留您的建议,以备将来使用。我认为对我来说最简单/最快捷的解决方案就是暂时将其暂时搁置。谢谢你将值从Django传递给JS的例子,但是我怎么可能做相反的事呢?所以我可以从JS滑块中获得原始值。谢谢 – Deepend 2014-10-04 14:11:09

+1

您需要将表单值发布到视图,您可以在其中将它们设置为会话。查看Django文档中的示例。 – Brandon 2014-10-04 14:25:40

相关问题