Python Django: удаление объекта

Я хочу удалить объект в Django, но ни один из других вопросов Stack Overflow не решает мой. Я посмотрел на этот, но он, похоже, не работает. Мой код удаления объекта (в файле views) выглядит следующим образом:

@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)

And in URLs.py:

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

Я хочу использовать кнопку Bootstrap4 (внутри модала) для удаления записи, (так что без каких-либо перенаправлений на другую страницу подтверждения). Image.. К сожалению, это не работает. Я просто получаю ошибку сервера, говорящую, что NoReverseMatch at /delete_entry/6. Не мог бы кто-нибудь объяснить мне, что это значит? Спасибо, Бен

Похоже, вы пытаетесь вызвать метод delete на форме, если вы хотите удалить объект, вы должны вызвать его на объекте:

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

Здесь относительная документация Django. EDIT: Я думаю, что вы ищете DeleteView

Вернуться на верх