Django - 如何创建简单的确认视图?

时间:2017-05-07 10:40:54

标签: python django django-class-based-views class-based-views

我正在尝试创建一个View,要求用户确认更新实例值的操作。我希望View只有一个提交按钮。我想要的是类似于DeleteView,除了我想要的是更新记录的值而不是删除记录。

我尝试使用基于类的UpdateView,但它要求我指定一个fields参数,我必须在其中指定至少一个字段,我不想显示任何字段,只需提交按钮。

这就是我的模板现在的样子:

url(r'^action/complete-item/(?P<pk>\d+)/$', views.CompleteItemView.as_view(), name='complete'),

视图的网址:

class CompleteItemView(UpdateView):
    model = models.Item
    template_name = 'items/complete_item.html'
    fields = ("status",)

    def form_valid(self, form):
        form.instance.status = 'completed'
        return super().form_valid(form)

我的UpdateView:

<html>
<body>
  <table>
    <tr><td>Image name</td></tr>
    <tr><td><a href='#openModal'>Image1</a></td></tr>
  </table>
  <div id="openModal">
    <table>
      <tr><td>Sensor value</td></tr>
        <?php
           $sql="SELECT sensor_value FROM table WHERE imageid='$id'";
           $result=mysqli_query($conn,$sql);
           if($result){
             $row=$result->fetch_assoc();
             echo "<tr><td>".$row['sensor_value']."</td></tr>";
           }
        ?>
    </table>

上面我选择了显示状态字段,这就是我想以优雅的方式摆脱它,因为我只想显示没有任何字段的确认按钮。

2 个答案:

答案 0 :(得分:1)

而不是

if (has_post_thumbnail($post->ID)) {
        $retina  = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'homepage-thumb-retina' );
        echo '<img src="' . $retina[0] . '" alt="' . the_title() .'"   width="300" height="150" /> <br/>' ;
};

你可以简单地写

{{ form.as_p }}

这会将<input name="{{ form.status.html_name }}" id="{{ form.status.id_for_label }}" value="{{ form.status.value }}" type="hidden"> 字段隐藏起来,只有status按钮可见。

答案 1 :(得分:0)

你可以使用这样的Javascript:

<script>
$(document).on('click', '.some_class', function(){
return confirm('Are you sure you want to update this?');
})
</script>

将类some_class添加到按钮