首页 > 解决方案 > 删除模板中的对象 - django

问题描述

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

鉴于每个子页面我会有这样的代码:

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

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

标签: django

解决方案


好的,我想我找到了一个简单的解决方案,但我希望您发表评论。所以在模板中,当我单击删除按钮时,我通过 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 语句找出我正在调用删除函数的子页面,然后使用 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')

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


推荐阅读