巨蟒 Django :删除对象

dffbzjpn  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(155)

我想在Django中删除一个对象,但是其他的堆栈溢出问题都不能解决我的问题。我看了看this one,但是它似乎不起作用。我的删除对象代码(在视图文件中)看起来像这样:

@login_required
def delete_entry(request, entry_id):
    """Delete an existing entry."""
    if request.method != 'POST':
        # No data submitted; create a blank form.
        form = TopicForm()
    else:
        # POST data submitted; process data.
        form = TopicForm(data=request.POST)
        if form.is_valid():
            new_topic = form.delete(commit=False) ### code to delete object
            new_topic.owner = request.user
            new_topic.save()
            return redirect('learning_logs:topics')

    # Display a blank or invalid form.
    context = {'topic': topic, 'form': form}
    return render(request, 'learning_logs/new_entry.html', context)

而在URLs.py:

path('delete_entry/<int:entry_id>', views.delete_entry, name='delete_entry'),

我想使用Bootstrap4按钮(在模态中)来删除条目,(所以没有任何重定向到另一个确认页面)。Image.不幸的是,这是行不通的。我只是得到一个服务器错误说NoReverseMatch at /delete_entry/6。有人能告诉我这是什么意思吗?

5kgi1eie

5kgi1eie1#

看起来你试图在窗体上调用delete方法,如果你想删除对象你应该在对象上调用它:

my_object = MyModel.objects.get(id=entry_id) # retrive the object with the specified id
my_object.delete() # delete it

这里是Django的相关文档。编辑:我认为您正在寻找DeleteView

相关问题