Django Form 삭제 구현!

2022. 1. 24. 17:18강의 정리/Django Form

반응형

출처 : https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%A5%EA%B3%A0-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard

 

장고(Django)를 배우기 시작한 입문자이시거나, 또는 배우고 싶은 생각이 있으신 분은 위 출처의 강의를 적극 추천드립니다!!!

 

 


 

 

#instagram/views.py

@login_required
def post_delete(request, pk):
    # get_object_or_404는 model을 첫번째 인자로 받고, 몇개의 키워드 인수를 get() 함수에 넘김
    post = get_object_or_404(Post, pk=pk)

    # 유저가 삭제 확인을 했을 때는
    if request.method == 'POST':
        post.delete()
        messages.success(request, '성공적으로 삭제하였습니다.')
        return redirect('instagram:post_list')
    return render(request, 'instagram/post_confirm_delete.html', {
        'post' : post,

    })

 

  • 장고에서 기본적으로 지원하는 삭제 기능은 User에게 삭제 확인을 받는다. 삭제 확인을 받으면 그 때 삭제를 진행합니다.
    • User가 삭제 확인을 할 때에는 GET 요청
    • User가 확인을 했을 때는 POST 요청

 

#instagram/urls.py

urlpatterns = [ 

    path('<int:pk>/delete/', views.post_delete, name='post_delete'), # Post.DoesNotExist 오류

]

 

 

#instagram/post_detail.html

    <a href="{% url 'instagram:post_delete' post.pk %}" class="btn btn-danger" >
        삭제
    </a>

 

 

#instagram/post_confirm_delete.html

 

{% extends "Instagram/layout.html"%}


{% block content %}
    <form action="" method="post">
        {% csrf_token %}
        
        <div class="alert alert-danger">
            정말 삭제하시겠습니까?
        </div>
        
        <a href="{{ post.get_absolute_url }}" class="btn btn-primary">
            돌아가기
        </a>

        <input type="submit" value="삭제하겠습니다." class="btn btn-danger" />

    </form>
{% endblock content %}

 

 

 

 

반응형

'강의 정리 > Django Form' 카테고리의 다른 글

Django 회원가입, 로그인 구현하기!!!  (0) 2022.01.25
Django 빌트인 CBV를 통한 Form 처리  (0) 2022.01.24
Django Messages Framework  (0) 2022.01.24
Django Form Validation  (0) 2022.01.19
Django ModelForm이란?  (0) 2022.01.19