-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
.
DeletionMixin
어떤보기 - 클래스RedirectView
을 사용할 수 있습니까? 클래스 기반 및 함수 기반 뷰는 프론트 엔드와 관련된 * 동일한 방식으로 작동합니다. 스위칭은 전혀 차이가 없습니다. –삭제 동작을 언급하고 있으므로 DeleteView를 사용해야합니다. 사용자 지정 논리를 추가하려면 기본 메서드를 무시하십시오. http://ccbv.co.uk/ – petkostas
아직 레코드를 삭제하지 않습니다. 예를 들어 모델에서 필드를 업데이트하면됩니다. 휴지통에 삭제 된 것으로 표시됩니다. – Frankline