一、平台页面
1、列表页面
2、新增页面
3、更新页面
二、定义模型类:
from django.db import models
# Create your models here.
from django.db import models
from utils.base_models import BaseModel
class Envs(BaseModel):
name = models.CharField(verbose_name='环境名称', max_length=200, unique=True, help_text='环境名称')
base_url = models.URLField(verbose_name='请求base url', max_length=200, help_text='请求base url')
desc = models.CharField(verbose_name='简要描述', max_length=200, help_text='简要描述')
class Meta:
db_table = 'tb_envs'
verbose_name = '环境信息'
verbose_name_plural = verbose_name
ordering = ('id',)
def __str__(self):
return self.name
三、定义序列化器类
提示:
1.根据页面展示可得需要输出id、name、base_url、desc、create_time
2.根据新增数据页面可得需要输入name、base_url、desc
class EnvsModelSerializer(serializers.ModelSerializer):
class Meta:
model=Envs
exclude=['create_time']
extra_kwargs = {
"create_time": {
"read_only": True,
"format": "%Y年%m月%d日 %H:%M:%S"
}
}
class EnvsNameSerializer(serializers.ModelsSerializer):
class Meta:
model=Envs
fields=['id','name']
四、定义视图类
class EnvsViewSet(ModelViewSet):
queryset=Envs.objects.all()
serializer_class=EnvsModelSerializer
pagination_class = PageNumberPagination
@action(methods=['GET'],detail=False)
def names(self,request,*args,**kwargs):
return super().list(request,*args,**kwargs)
def get_serializer_class(self):
if self.action=='names':
return EnvsNameSerializer
else:
return super().get_serializer_class()
def paginate_queryset(self, queryset):
if self.action=='names':
return
else:
return super().paginate_queryset(queryset)
软删除,没有真正的删除
def destroy_peoform(self,instance):
instance.is_delete()
instance.save()
五、定义路由
router=routers.SimpleRouter()
router.register(r'envs',EnvsViewSet)
urlpatterns=[
path('',include(router.urls))
]
六、列表数据展示
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123257.html