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