在前篇文章中,我们利用了Django基于函数的视图编写一个任务管理小应用,实现创建(Create)一个任务,查看(Retrieve)任务清单和单个任务详情,更新(Update)一个任务和删除(Delete)一个任务。本例中我们将使用Django基于类的视图(CBV)重写之前的小应用程序, 一共只有16行核心代码。同样的我们只讲述核心逻辑,不浪费时间在前端样式上。
本次案例演示效果如下所示:
第一步:创建tasks应用,把它加入INSTALLED_APPS
首先使用 python manage.py startapp tasks
创建一个名为"tasks"的app,并把它计入到settings.py
的INSTALLED_APPS中去。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tasks',
]
然后把app下的urls路径加入到项目文件夹的urls.py里去。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('tasks/', include('tasks.urls'))
]
第二步:创建Task模型及其关联表单
我们的Task模型非常简单,仅包含name和status两个字段. 我们还使用ModelForm类创建了TaskForm,我们在创建任务或更新任务时需要用到这个表单。
# tasks/models.py
from django.db import models
class Status(models.TextChoices):
UNSTARTED = 'u', "Not started yet"
ONGOING = 'o', "Ongoing"
FINISHED = 'f', "Finished"
class T