模块应用代码设计
module\models设计
模块表设计比较简单,基本和项目表一致,但是有个地方需要注意下,模块肯定属于项目,所以我们需要再模块表设个外键。
from django.db import modelsfrom project.models import Projects# Create your models here.class Modules(models.Model):# on_delete=models.PROTECT作用:关联数据是受保护的,无法删除project = models.ForeignKey('project.Projects', on_delete=models.PROTECT)name = models.CharField(max_length=20, unique=True)desc = models.CharField(max_length=200, null=True, blank=True, default='')create_time = models.DateTimeField(auto_now_add=True)update_time = models.DateTimeField(auto_now=True)class Meta:# i.db_table指定创建的数据表名称db_table = 'module'# 为当前数据表设置中文描述信息verbose_name = '模块'verbose_name_plural = verbose_nameordering = ['id']def __str__(self):return self.name
生成表
生成迁移脚本
(env) D:\code\caseplatform>python manage.py makemigrations
生成数据表
(env) D:\code\caseplatform>python manage.py migrate
module\serializers.py设计
from rest_framework import serializersfrom .models import Modulesclass ModuleSerializer(serializers.ModelSerializer):class Meta:model = Modulesexclude = ('update_time',)extra_kwargs = {"create_time": {"read_only": True,"format": "%Y年%m月%d日 %H:%M:%S"}}
module\views 设计
from .serializers import ModuleSerializerfrom .models import Modulesfrom rest_framework import viewsets, permissions# Create your views here.class ModuleViewSet(viewsets.ModelViewSet):permission_classes = [permissions.IsAuthenticated]search_fields = ['=name']ordering_fields = ['name']queryset = Modules.objects.all()serializer_class = ModuleSerializer
module\urls 设计
from module import viewsfrom rest_framework import routers# 创建SimpleRouter路由对象router = routers.SimpleRouter()# 注册projectsrouter.register('modules', views.ModuleViewSet)urlpatterns = router.urls
