Удаление записи с помощью представления на основе класса в django
Как удалить запись с помощью представления на основе класса
Я использую нижеприведенный вид.
class UserDeleteView(DeleteView):
model = User
success_url = reverse_lazy('dashboard')
template_name = 'delete_user_confirm.html'
Можно ли избежать template_name = 'delete_user_confirm.html'
?
Если вам нужно представление удаления без шаблона подтверждения, я бы вообще не использовал класс DeleteView
. Скорее всего, я бы использовал функциональный вид, который возвращает перенаправление на успешный url:
def delete_user(request, id):
# only allow POST requests (assuming requests are sent from browser not API call)
if request.method != "POST":
return Response(status=405)
obj = get_object_or_404(User, id=id)
obj.delete()
return HttpResponseRedirect(reverse("your_success_url"))
Думаю, если очень хочется, можно переопределить метод DeleteView
get для вызова логики DELETE
, но мне не очень нравится идея, когда запрос GET
фактически выполняет логику DELETE
.
Но если вы действительно хотите/не хотите делать это таким образом, то это будет выглядеть так:
class UserDeleteView(DeleteView):
model = User
success_url = reverse_lazy('dashboard')
def get(self, request, *args, **kwargs):
return self.delete(request, *args, **kwargs)