【发布时间】:2015-07-14 07:42:23
【问题描述】:
在我正在创建的多页调查应用程序中,我有一个 jQuery UI 滑动条,用于为图像提供评级。这会向我的 Python/Django 视图返回一个数值,该值存储在列表 slider_DV_values
在稍后的数据验证调查页面上,参与者有机会通过另一个 jQuery 滑块更新他们为图像分配的评级。
我的问题是,如果参与者更改了 jQuery UI 滑块,它只会返回一个数值。因此,如果参与者不更新原始评级,它将被覆盖,什么都没有。
但是,如果他们确实更新了他们的评级,那么新值就会被存储。
如果我尝试
elif step == 13:
slider_value1 = self.request.POST.get('slider_value1')
print "This is slider_value1", slider_value1
if slider_value1 is not None:
slider_DV_values.pop(0)
slider_DV_values.insert(0, slider_value1)
slider_DV_values 中存储的原始值仍然被覆盖,什么都没有。
我认为is not None 会阻止使用空值覆盖原始值?这不正确吗?
谁能告诉我如何防止原始值被覆盖,除非新值是更新的数值?
谢谢,加深
编辑
要查看我如何获取我的值,这是我的SurveyWizardView 页面中的 jQuery 滑块栏,其值通过隐藏的表单元素返回
<div class="DV_image_row">
<div class="DV_image_left">
<img src="{% static "survey/images/pathone/" %}{{first_image}}{{fourth_image}}{{seventh_image}}" height="300" width="250" style="border:1px solid black;" align="middle"/>
<div class="DV_slider_one" id="one"></div>
<script >
$('#submit').click(function() {
var username = $('#hidden').val();
if (username == "") username = 0;
$.post('comment.php', {
hidden: username
}, function(return_data) {
alert(return_data);
});
});
$(".DV_slider_one").slider({
animate: true,
range: "min",
value: {{first_slider}}{{forth_slider}}{{seventh_slider}},
min: -100,
max: +100,
step: 1,
slide: function(event, ui) {
$("#slider-result_left").html((ui.value > 0 ? '+' : '') + ui.value);
if($(this).attr("id") == "one")
$("#hidden2").val((ui.value > 0 ? '+' : '') + ui.value);
}
});
</script>
<div id="slider-result_left">{{first_slider}}{{forth_slider}}{{seventh_slider}}</div>
<input type="hidden" name="slider_value1" id="hidden2"/>
</div>
【问题讨论】:
-
is not None 检查变量的类型,除非变量直接来自python,否则它不太可能没有。更有可能是一个空字符串。
-
你的意思是它被覆盖为空字符串?如果是,那么您应该尝试
if slider_value1 != '' -
@akshay 工作完美,如果您将解决方案写成答案,我将很乐意接受。
标签: python django python-2.7 django-views