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
,並使用 reverse
或 reverse_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。出現錯誤時,將再次顯示錶單並顯示錯誤訊息。