728x90
반응형
문제상황: 게시물을 삭제하기위해서 deleteview를 만들었는데 삭제를 위해 삭제화면(template)으로 이동하는 대신 삭제를 확인하는 modal 창을 띄워 삭제 전 다시한번 확인하는 형태를 만들고 싶었다. 하지만 모달을 띄우는데까지는 성공했으나 삭제하기버튼을 누르면 바로 삭제되지 않고 template으로 넘어가는 문제가 생겼다.
DeleteView는 POST request와 GET request에 응답해 GET request는 template을 띄우고 POST request는 삭제요청을 받는다. 아래와 같이 <form>으로 POST request를 보낼 수 있다.
<form class="post-form d-inline" action="{% url 'team:delete' pk=target_team.pk %}" method="post">
{% csrf_token %}
<a href="{% url 'team:delete' pk=target_team.pk %}"><button type="button" class="btn btn-danger">삭제하기</button></a>
</form>
그리고 views.py에서 get()을 재정의 해주었다.
class TeamDeleteView(DeleteView):
model = Team
context_object_name = 'target_team'
success_url = reverse_lazy('team:list')
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)
템플릿없이 모달에서 삭제를 누르면 바로 삭제되는 것을 확인할 수 있다.
<참고>
https://stackoverflow.com/questions/17475324/django-deleteview-without-confirmation-template
728x90
반응형
'웹 프로그래밍' 카테고리의 다른 글
[배포해보기 (2)] VPS 대여 (0) | 2021.06.21 |
---|---|
[배포해보기 (1)] Docker에 대하여 (0) | 2021.06.04 |
Javascript의 변수를 django DB에 넣기 (0) | 2021.05.24 |
웹 제작시 Icon 제공 사이트 (0) | 2021.05.03 |
[pinterest clone (35)] WYSIWYG 적용 (0) | 2021.05.03 |