一、平台页面展示
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