Todo 앱 update/delete 만들기

5611 단어 djangotododjango

오늘은 update와 delete 기능을 만들어보자.
update는 create와 크게 다른점이 없다.
1.createview 대신 updateview를 씀.
2. 이미 존재하는 객채를 수정하는것이므로, url에서 update/<int:pk>가 된다.

delete 는, 역시나 장고 제네릭 뷰의 deleteview를 사용할것이다.
작업순서는 view -> url -> template 순서이다.

#views.py

class TodoDeleteView(DeleteView):
    model = TodoList
    template_name = 'todo/todo_delete.html'
    success_url = reverse_lazy('todo:index')

모델,템플릿 이름, 삭제후 연결될 페이지를 설정해주고,

#urls.py

  path('delete/<int:pk>/', TodoDeleteView.as_view(), name='delete'),

url도 설정해준다.

#todo_delete.html

<div class="text-center">
    
    <form action="" method="POST">
    
    {{ form }}
    {% csrf_token %}
<div class="field is-grouped is-grouped-centered">
    
    <p class="control">
        해당 투두리스트를 삭제 하시겠습니까?
      </p>
  </div>
    <p class="control">
        
      <input type="submit" class="btn btn-danger" value="삭제">
      <a class="btn btn-secondary" href="{% url 'todo:index' %}">
        취소
      </a>
    </p>
    </form>

위와 같이 템플릿을 작성해주었는데, 어떤 글을 삭제하는지 알기쉽게 하기위에서 삭제를 누를때 디테일뷰의 내용을 가져오도록 했다.
이때, detailview 에서는 context를 설정해서 템플릿에 todo.image.url으로 입력해도 괜찮지만,deleteview에서는 따로 설정하지 않았기때문에 object.image.url 등으로 바꿔주어야 한다.


잘 작동한다!

이것으로 Todo앱은 우선 완성되었다.
디자인적인 측면에서 굉장히 보기 싫지만, 디자인은 홈페이지가 다 완성되고 나서 일괄적으로 처리할꺼니까 좀 미뤄놓도록 해야겠다.

좋은 웹페이지 즐겨찾기