2017-10-07 118 views
0

我正在django的一个项目中工作。我有这部分代码,当我想要删除一个专辑时,它会显示Yes或No来选择,但问题是,无论我做出什么选择,它总是会删除专辑。我知道我必须添加一些东西到确认选项,但我不想要在哪里或什么。在django中删除确认

<form action="{% url 'music:delete_album' album.id %}" method="post" style="display: inline;"> 
           {% csrf_token %} 
           <input type="hidden" name="album_id" value="{{ album.id }}" /> 
           <button type="submit" onclick="confirm('Are you sure ?')" class="btn btn-default btn-sm"> 
            <span class="glyphicon glyphicon-trash"></span> 
           </button> 
          </form> 

,这是delete_album观点:

def delete_album(request, album_id): 
    album = Album.objects.get(pk=album_id) 
    album.delete() 
    albums = Album.objects.filter(user=request.user) 
    return render(request, 'music/index.html', {'albums': albums}) 
+0

javascript confirm()方法返回一个布尔值。只有当它返回true时,你才应该提交表单。 – aris

+0

,我该怎么做? –

+1

试试这个:从你现在的位置删除confirm(),并把它放在表单中:

aris

回答

1

好,它可以被验证之前提交表单。如果你复制下一个剪切然后它将验证:)

<form action="{% url 'music:delete_album' album.id %}" 
    method="post" style="display: inline;" onsubmit="window.mytest()"> 
    {% csrf_token %} 
    <input type="hidden" name="album_id" 
     value="{{ album.id }}" /> 
    <button type="submit" class="btn btn-default btn-sm"> 
     <span class="glyphicon glyphicon-trash"></span> 
    </button> 
</form> 
<script type="text/javascript">window.mytest = function() { var isValid = confirm('Are you sure ?');if (!isValid) { event.preventDefault(); alert("It wont delete. Yay!");}}</script>