작성
·
230
0
2회차 듣고 있는데 아무생각없이 삭제하려고 보니까 삭제기능은 없는데 만약 구현한다면 하는 생각으로
urls.py에 url 패턴에
path('<int:pk>/delete/', views.PostDelete.as_view())
라고 했구요
models.py에
def get_delete_url(self):
return f'{self.pk}/delete/' 로 정의했고
html post_detail에 {{ object.get_delete_url }}로 버튼 만들었고
views.py에
class PostDelete(LoginRequiredMixin, DeleteView):
model = Post
login_url ='/login/'
succress_url = '/' 이렇게 코딩했는데 delelte_confirm.html을 지정을 안해줫다고 나오는데 이 컨펌을 댓글 처럼 delete_confirm.html대신에
댓글삭제를 modal로 컨펌해서 지우고 싶은데 함수형 말고 클래스형 뷰로 설명을 좀 해주실수 있나요
답변 3
1
0
아 해결했습니다!!..ㅋㅋ 자문자답이 되었네요. 그러나 여전히 왜 안됐었는지... 답은 못찾았습니다..
# views.py
def delete_post(request, pk):
model = Post.objects.get(pk=pk)
model.delete()
return redirect('/blog/')
#url.py
app_name = 'blog'
urlpatterns = [
path('delete_post/<int:pk>',views.delete_post, name='delete_post'),
]
# models.py
def get_delete_url(self):
return '/delete_post/{self.pk}/'
# post_detail.html
<a href="{% url 'blog:delete_post' pk=post.pk %}">delete</a>
0
안녕하세요,
알려주신대로 시도했는데 아래와같은 오류가 나는데 혹시 해결방법이 있을까요?
[ERROR 메세지]
[09/Jun/2020 17:26:23] "POST /blog/27/ HTTP/1.1" 405 0
# urls.py
urlpatterns = [
path('blog/<int:pk>/delete/', views.PostDelete.as_view()),
]
# models.py
def get_delete_url(self):
return '/{self.pk}/delete/'
# post_detail.html
<form method="post" action="{{ get_delete_url }}">{% csrf_token %}
<button type="submit" class="btn btn-primary">Confirm</button>
</form>
# views.py
class PostDelete(LoginRequiredMixin, DeleteView):
model = Post
login_url ='/login/'
success_url = '/'
[09/Jun/2020 17:26:23] "POST /blog/27/ HTTP/1.1" 405 0