-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
我如何轉換以下功能基礎觀爲一類基於視圖?不知道哪一個適合這裏:UpdateView
或。
爲什麼你認爲你的要求將被切換到基於類的觀點得到滿足?就前端而言,基於類和基於功能的視圖的工作方式與*完全相同。切換將完全沒有區別。 –
由於您指的是刪除操作,因此應該使用DeleteView,以便添加您的自定義邏輯,只需覆蓋默認方法即可。 http://ccbv.co.uk/ – petkostas
但我沒有刪除記錄。只需更新模型中的字段,例如在垃圾箱中顯示爲已刪除。 – Frankline