Python:"不是无"没有按预期工作

Dee*_*end 0 python django django-views python-2.7

在我创建的多页调查应用程序中,我有一个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)
Run Code Online (Sandbox Code Playgroud)

存储的原始值slider_DV_values仍然被覆盖,没有任何内容.

我以为is not None会阻止使用空值来覆盖原始值?这不正确吗?

任何人都可以告诉我如何防止原始值被覆盖,除非新值是更新的数值?

谢谢,Deepend

编辑

要查看我如何获取我的值,这是我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> 
Run Code Online (Sandbox Code Playgroud)

Jor*_*ley 7

"" is NoneFalse

ONLY None is NoneTrue

也许你只想要if not slider_value1 :对任何假值(空字符串,空列表,空元组,假,0,无等)都是如此

  • "只有无是无是真的"听起来很有趣 (4认同)