当前位置: 首页 > news >正文

团购做的好的网站百度旗下13个app

团购做的好的网站,百度旗下13个app,一个人在家做网站建设,品牌设计法则这里先写任务应用,再写套件,然后写接口,最后再写请求, 这个是新的应用,要创建子应用,然后添加到settings的注册里面 1、和往常一样先写模型,序列化,权限,视图&#xf…

这里先写任务应用,再写套件,然后写接口,最后再写请求,

这个是新的应用,要创建子应用,然后添加到settings的注册里面
在这里插入图片描述

1、和往常一样先写模型,序列化,权限,视图,urls,

1、创建任务模型
from django.db import models

from utils.models import BaseModel

from apps.projects.models import Project,Module,Environment,Interface

class Task(BaseModel):
name = models.CharField(‘任务名称’, max_length=200, help_text=‘测试任务名称’)
project = models.ForeignKey(Project, verbose_name=‘所属项目’,
on_delete=models.PROTECT, help_text=‘项目id’, related_name=‘tasks’)
modules = models.ManyToManyField(Module, verbose_name=‘负责的模块’, help_text=‘包含模块’)

def __str__(self):return self.nameclass Meta:db_table = 'tb_task'verbose_name = '测试任务'verbose_name_plural = verbose_nameconstraints = [models.UniqueConstraint(fields=['name', 'project'],name='unique_task_name')]

class TestSuit(BaseModel):

name = models.CharField('测试套件名称', max_length=200, help_text='测试套件名称')
task = models.ForeignKey(Task, verbose_name='测试任务', on_delete=models.PROTECT,help_text='测试任务id', related_name='test_suits')def __str__(self):return self.nameclass Meta:db_table = 'tb_test_suit'verbose_name = '测试套件'verbose_name_plural = verbose_nameconstraints = [models.UniqueConstraint(fields=['name', 'task'],name='unique_test_suit_name')]

记得进行数据迁移
2、写序列化
from rest_framework import serializers

from rest_framework.validators import UniqueTogetherValidator
from rest_framework.exceptions import ValidationError

from apps.testcases.models import Task,TestSuit
from apps.projects.models import Project

class TaskSerializer(serializers.ModelSerializer):

class Meta:model = Taskexclude = ['is_delete', 'u_time']validators = [UniqueTogetherValidator(queryset=model.objects.all(),fields=['name', 'project'])]def validate_modules(self, value):"""选择的模型要是当前项目的模型"""project_id = self.initial_data.get('project')queryset = Project.objects.filter(pk=project_id)if not queryset:raise ValidationError('id为{}的项目不存在'.format(project_id))# module表没有关联projects表,需要反向查找用module_set,拿到当前项目的模块 values_list ids 是个元组需要脱壳,ids = queryset.first().module_set.values_list('id')# 列表生成式 元组转化成列表ids = [item[0] for item in ids]for m in value:if m.id not in ids:raise ValidationError('id为{}的模块不在当前项目中'.format(m.id))return value

3、写权限
from utils.permissions import IsSuperUserOrReadOnly
from apps.projects.models import Project

class TaskPermission(IsSuperUserOrReadOnly):

def has_create_permission(self, request, view, obj):"""当前用户是否是当前项目的leader"""pk = request.data.get('project')queryset = Project.objects.filter(pk=pk)return queryset and queryset.first().leader == request.userdef has_update_delete_permission(self, request, view, obj):"""当前用户是否是当前项目的leader"""return obj.project.leader == request.user

4、写views
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticated

from testcases.serializers import TaskSerializer
from utils.pagintion import TenItemPerPagePagination
from testcases.permissions import TaskPermission
from apps.testcases.models import Task

class TaskViewSet(ModelViewSet):
serializer_class = TaskSerializer
queryset = Task.objects.all().order_by(‘-c_time’)
# queryset = models.Task.objects.all()
permission_classes = [IsAuthenticated, TaskPermission]
pagination_class = TenItemPerPagePagination
# filterset_field = [‘project’] # 和下面一样
filterset_field = (‘project’,)

def perform_create(self, serializer):self.check_object_permissions(self.request, None)super().perform_create(serializer)

5、配置url
from . import views

route = DefaultRouter()
route.register(‘tasks’, views.TaskViewSet)
urlpatterns = route.urls

6、调试

http://www.dt0577.cn/news/34757.html

相关文章:

  • 网站建设的优点和不足南宁seo推广外包
  • 城乡建设委官方网站成都计算机培训机构排名前十
  • 做投票的网站如何优化网站推广
  • 网站 打赏功能seo外包 靠谱
  • 对于诈骗网站怎么做appstore关键词优化
  • 政府网站开发平台如何建立免费个人网站
  • 浙江昆仑建设集团网站河南新站关键词排名优化外包
  • 柳州关键词优化网站营销中存在的问题及对策
  • wordpress页面第一次访问被劫持seo是什么意思新手怎么做seo
  • 网站建设一站式服务公司360网站推广费用
  • 怎么开发ios软件采集站seo赚钱辅导班
  • 网页用什么软件做seo关键词排名工具
  • 2008 iis 添加 网站 权限设置网站推广怎么做
  • 怎么看网站后台什么语言做的游戏推广员骗局
  • 网站做接口到app 价格站长工具seo综合查询工具
  • 郑州网站模板哪里有google收录提交入口
  • 网站项目ppt怎么做百度帐号登录个人中心
  • 动态网站开发架构网店推广的方式
  • 网站建设的费用是不是含税的360推广登陆入口
  • 绍兴建设银行网站首页搜索引擎优化seo什么意思
  • 怎么样做搜索引擎网站西安网站seo服务
  • 政府单位门户网站开发文档德芙巧克力的软文500字
  • 南京医院网站建设方案营销方式和营销策略
  • 百色建设局网站软文标题和内容
  • 在线直播教学网站是怎么做的电商培训班
  • 山西住房和建设厅网站国内免费建网站
  • asp.netc 动态网站开发网站制作多少钱一个
  • 济宁网站建设神华百度关键词查询排名
  • 凌云县城乡建设局网站手机卡顿优化软件
  • 网站建设相对应的税收分类是免费seo教程资源