0

我對CBV相當新,我有以下問題: 我看到有CreateView會向您顯示創建新數據庫條目的「空白」表單, UpdateView將向您顯示現有更新條目的表單。Django Class Based View:檢索最近查看的條目

我需要的是它的某種組合:向用戶呈現最後查看/更新條目的表單,但是如果數據庫還沒有條目(例如新用戶),則向用戶呈現默認( 「空」)形式。

所以,這裏還有2分:

  1. 有一個包含每個用戶最後觀看/更新條目的模式:應該怎樣這種模式是什麼?

  2. 有一個視圖允許呈現上面指定的窗體。在Django中有通用或半通用的方法嗎?我應該使用什麼樣的CBV?

謝謝。

+0

您能否詳細說明「最後查看的條目」?你會如何定義? –

回答

1

我還沒有測試過這個,所以我不確定這是否可行。

from django.views.generic.edit import ModelFormMixin, ProcessFormMixin 

class MyView(ModelFormMixin, ProcessFormMixin): 
    def get(self, request, *args, **kwargs): 
     try: 
      self.object = MyModel.objects.latest("id") 
     except MyModel.DoesNotExist: 
      self.object = None 
     return super(MyView, self).get(request, *args, **kwargs) 

    def post(self, request, *args, **kwargs): 
     try: 
      self.object = MyModel.objects.latest("id") 
     except MyModel.DoesNotExist: 
      self.object = None 
     return super(MyView, self).post(request, *args, **kwargs)