2014-06-17 6 views
-1

Django 1.6.5를 사용하고 있습니다. 기본적으로 내가 원하는 것은 사용자가 '삭제'링크를 클릭하면 양식이 표시되지 않는다는 것입니다. *_deleted_at 필드를 업데이트하면 message_confirm_delete.html 템플릿으로 리디렉션하지 않고받은 편지함을 표시합니다.함수 기반 뷰를 클래스 기반 뷰로 변경하는 방법

을 감안할 때 다음

urls.py

... 
url(r'^delete/(?P<message_id>[\d]+)/$', delete, name='messages_delete'), 
... 

views.py

def delete(request, message_id, success_url=None): 
    user = request.user 
    now = timezone.now() 
    message = get_object_or_404(Message, id=message_id) 
    deleted = False 
    if success_url is None: 
     success_url = reverse('messages:messages_inbox') 
    if 'next' in request.GET: 
     success_url = request.GET['next'] 
    if message.sender == user: 
     message.sender_deleted_at = now 
     deleted = True 
    if message.recipient == user: 
     message.recipient_deleted_at = now 
     deleted = True 
    if deleted: 
     message.save() 
     return HttpResponseRedirect(success_url) 
    raise Http404 

I 클래스를 기반으로보기에 다음과 같은 기능을 기반으로 뷰를 변환 할 수있는 방법 ? 어느 사람이 여기에 적합하지 않은지 : UpdateView 또는 DeleteView.

+0

DeletionMixin 어떤보기 - 클래스 RedirectView을 사용할 수 있습니까? 클래스 기반 및 함수 기반 뷰는 프론트 엔드와 관련된 * 동일한 방식으로 작동합니다. 스위칭은 전혀 차이가 없습니다. –

+0

삭제 동작을 언급하고 있으므로 DeleteView를 사용해야합니다. 사용자 지정 논리를 추가하려면 기본 메서드를 무시하십시오. http://ccbv.co.uk/ – petkostas

+0

아직 레코드를 삭제하지 않습니다. 예를 들어 모델에서 필드를 업데이트하면됩니다. 휴지통에 삭제 된 것으로 표시됩니다. – Frankline

답변

0

또한 왜 당신이 당신의 요구 사항은 클래스 기반보기로 전환하여 성취 될 것이다 생각이 경우 또는

관련 문제