删除模板中的对象-Django

时间:2018-09-08 22:01:34

标签: django

我的主页上有很多子页面,在每个子页面上,我列出了很多项目。我要删除项目旁边的一个删除按钮,当您按下它时,必须删除该项目,但您必须保持在同一页面上。有没有一种方法,当我按下删除按钮时,我会发送要查看的对象ID,但仍保留在同一页面上?

鉴于每个子页面,我都会有如下代码:

if request.method == 'GET'  and 'delete' in request.GET: 

现在我需要一种获取删除按钮旁边对象的ID的方法,这样我就可以删除它。我在网上看到了一些使用url的解决方案,但问题是我必须为7个子页面的每一个写一个特殊的url。

1 个答案:

答案 0 :(得分:0)

好的,我想我找到了一个简单的解决方案,但是我想请您发表评论。因此,在模板中,当我单击删除按钮时,我通过URL发送子页面的名称和对象的ID:

<a href="delete/graficna/{{ graficna.id}}" >    
                <button> delete</button>
            </a>

我使用以下网址:

url(r'^delete/(?P<vrsta>\w+)/(?P<id>\d+)$', views.delete, name='delete'),

在视图中,我仅使用if语句找出我从哪个子页面中调用了delete函数,然后使用id查找对象并将其删除。之后,我返回到我称之为删除的页面。

def delete(request, vrsta, id):     

if vrsta == 'graficna':
    graficna = Graficna.objects.get(pk=id).delete() 
    return redirect('graficne')

if vrsta == 'procesor':
    procesor = Procesor.objects.get(pk=id).delete() 
    return redirect('procesor')

return redirect('main')

那么您如何看待这种方法?