【效能平台】内置函数管理模块——获取内置函数列表数据、查看内置函数详情数据(八)

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 【效能平台】内置函数管理模块——获取内置函数列表数据、查看内置函数详情数据(八),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、平台页面展示

1、内置函数列表展示

在这里插入图片描述

2、内置函数详情数据展示

在这里插入图片描述

二、模型类定义

from django.db import models

# Create your models here.
from django.db import models

from utils.base_models import BaseModel


class DebugTalks(BaseModel):
    name = models.CharField('debugtalk文件名称', max_length=200, default='debugtalk.py', help_text='debugtalk文件名称')
    debugtalk = models.TextField(null=True, default='#debugtalk.py', help_text='debugtalk.py文件')
    project = models.OneToOneField('projects.Projects', on_delete=models.CASCADE,
                                   related_name='debugtalks', help_text='所属项目')

    class Meta:
        db_table = 'tb_debugtalks'
        verbose_name = 'debugtalk.py文件'
        verbose_name_plural = verbose_name
        ordering = ('id',)

    def __str__(self):
        return self.name

三、序列化器定义

根据列表页面上可知:展示id、项目名称、内置函数名称,并且不需要输入;
debugtalk不需要展示,但是需要输入。

class DebugtalksModelSerializer(serializers.ModelSerializer):
	project=serializers.StringRelatedField(label='所属项目名称',help_text='所属项目名称',read_only=True)
	
	class Meta:
		model=Debugtalks
		fields=['id','name','project','debugtalk']
		extra_kwargs={
			'debugtalk':{
				'write_only':True	
			}
		}

class DebugtalkSerializer(serializers.ModelSerializer):
	class Meta:
		model=Debugtalks
		fields=['id','debugtalk']

四、视图类定义

提示:

1、此模块不涉及新增内置函数和删除内置函数功能,所以没必要继承ModelViewSet
2、ModelViewSet类继承了ListModelMixin,UpdateModelMixin,RetrieveModelMixin,CreateModelMixin,DestroyModelMixin
3、GenericViewSet继承了ViewSetMixin、GenericAPIView
4、继承了ViewSetMixin,有自动生成路由机制的功能

class DebugtalksViewSet(ListModelMixin,
					RetrieveModelMixin,
					UpdateModelMixin,
					GenericViewSet):
	queryset=Debugtalks.objects.all()
	serializer_class=DebugtalksModelSerializer
	pagination_class=PageNumberPagination
	permission_classes = [permissions.IsAuthenticated]
		
	def get_serializer_class(self):
		if self.action=='retrieve':
			return DebugtalkSerializer
		else:
			return super().get_serializer_class

五、路由定义

router=routers.SimpleRouter()
router.register(r'debugtalk',DebugtalksViewSet)
urlpatterns=[
	path('',include(router.urls))
]

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123256.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!