2017-12-19 16 views
2

장고에서 "계정 삭제"기능을 만들려고합니다. 이 목적으로 DeleteView을 사용합니다.DJANGO : TemplateDoesNotExist : auth/user_confirm_delete.html

문제는이보기를 호출 한 후, Django이 제기입니다 :

Request Method: GET 
Request URL: http://127.0.0.1:8000/profiles/delete-account/ 
Django Version: 1.11.7 
Exception Type: TemplateDoesNotExist 
Exception Value:  
auth/user_confirm_delete.html 

내보기 :이 template 렌더링을 시도하고 이러한 템플릿이없는 이유가되고 있다면 왜

class DeleteAccount(LoginRequiredMixin,DeleteView): 
    model = User 

    def get_object(self, queryset=None): 
     user = self.request.user 
     userprofile = user.userprofile 
     userprofile.prepare_to_delete_account() 
     return user 

전화 했어?

이 문제를 해결하는 방법을 알고 계십니까?

답변

4

뷰는 템플릿을 렌더링하여 개체를 삭제할 것인지 확인합니다.

기본적으로 앱과 모델 이름에서 템플릿 이름 auth/user_confirm_delete.html을 생성합니다.

다른 템플릿을 사용하려면 template_name을 설정하십시오.

class DeleteAccount(LoginRequiredMixin,DeleteView): 
    model = User 
    template_name = 'delete_account.html' 

템플릿을 생성해야하며 장고에는 템플릿이 포함되어 있어야합니다. 확장 할 수있는 in the docs의 예가 있습니다.

<form action="" method="post">{% csrf_token %} 
    <p>Are you sure you want to delete "{{ object }}"?</p> 
    <input type="submit" value="Confirm" /> 
</form> 
+0

나는 이해합니다. 이 목적을 위해 POST 로의 GET 변경으로 충분합니다. –

+1

사용자 또는 봇이 GET 요청을 통해 URL에 직접 액세스하는 경우에도 서버 오류가 발생할 수 있습니다. 이것을 피하기 위해'http_method_names = [ 'POST']'를 설정할 수있다. – Alasdair

+0

좋은 지적, 고마워. –