Django 基於類的檢視 CreateView 的示例

使用基於類的通用檢視,從我們的模型建立 CRUD 檢視非常簡單和容易。通常,內建的 Django 管理員不夠或不首選,我們需要推出自己的 CRUD 檢視。在這種情況下,CBV 可以非常方便。

CreateView 類需要 3 件事 - 一個模型,要使用的領域和成功的 URL。

例:

from django.views.generic import CreateView 
from .models import Campaign

class CampaignCreateView(CreateView):
    model = Campaign
    fields = ('title', 'description')
    
    success_url = "/campaigns/list"

建立成功後,使用者將被重定向到 success_url。我們也可以定義一個方法 get_success_url,並使用 reversereverse_lazy 來獲取成功網址。

現在,我們需要為此檢視建立一個模板。模板應以 <app name>/<model name>_form.html 格式命名。型號名稱必須為小寫字母。例如,如果我的應用名稱是 dashboard,那麼對於上面的建立檢視,我需要建立一個名為 dashboard/campaign_form.html 的模板。

在模板中,form 變數將包含表單。以下是模板的示例程式碼:

<form action="" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save" />
</form>            

現在是時候將檢視新增到我們的網址模式。

url('^campaign/new/$', CampaignCreateView.as_view(), name='campaign_new'),

如果我們訪問該網址,我們應該會看到一個包含我們選擇的欄位的表單。當我們提交時,它將嘗試使用資料建立模型的新例項並儲存它。成功後,使用者將被重定向到成功 URL。出現錯誤時,將再次顯示錶單並顯示錯誤訊息。