first commit

This commit is contained in:
lihansani
2026-07-13 15:37:05 +08:00
commit 8b11aa2efc
299 changed files with 206339 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
from typing import List
from .model import TestDemo
from ninja import Field, ModelSchema, Query, Router
from ninja.pagination import paginate
from utils.fu_crud import (
ImportSchema,
create,
delete,
export_data,
import_data,
retrieve,
update,
)
from utils.fu_ninja import FuFilters, MyPagination
router = Router()
# 设置过滤字段
class Filters(FuFilters):
des: str = Field(None, alias='des')
code: int = Field(None, alias='code')
name: str = Field(None, alias='name')
# 设置请求接收字段
class TestDemoSchemaIn(ModelSchema):
class Config:
model = TestDemo
model_exclude = ['create_datetime', 'update_datetime', 'belong_dept', 'modifier', 'creator', 'creator', 'id']
# 设置响应字段
class TestDemoSchemaOut(ModelSchema):
class Config:
model = TestDemo
model_fields = '__all__'
# 创建TestDemo
@router.post('/test_demo', response=TestDemoSchemaOut)
def create_test_demo(request, data: TestDemoSchemaIn):
test_demo = create(request, data, TestDemo)
return test_demo
# 删除TestDemo
@router.delete('/test_demo/{id}')
def delete_test_demo(request, id: int):
delete(id, TestDemo)
return {'success': True}
# 更新TestDemo
@router.put('/test_demo/{id}', response=TestDemoSchemaOut)
def update_test_demo(request, id: int, data: TestDemoSchemaIn):
test_demo = update(request, id, data, TestDemo)
return test_demo
# 获取TestDemo
@router.get('/test_demo', response=List[TestDemoSchemaOut])
@paginate(MyPagination)
def list_test_demo(request, filters: Filters = Query(...)):
qs = retrieve(request, TestDemo, filters)
return qs
# 导入
@router.get('/test_demo/all/export')
def export_test_demo(request):
export_fields = ('des', 'code', 'name', )
return export_data(request, TestDemo, TestDemoSchemaOut, export_fields)
# 导出
@router.post('/test_demo/all/import')
def import_test_demo(request, data: ImportSchema):
import_fields = ('des', 'code', 'name', )
return import_data(request, TestDemo, TestDemoSchemaIn, data, import_fields)

View File

@@ -0,0 +1,16 @@
from django.db import models
from utils.models import CoreModel
class TestDemo(CoreModel):
des = models.TextField(null=True, blank=True, verbose_name='描述', help_text='描述')
code = models.DecimalField(null=True, blank=True, max_digits = 13, decimal_places = 4, verbose_name='编码', help_text='编码')
name = models.CharField(null=True, blank=True, max_length=255, verbose_name='名称', help_text='名称')
class Meta:
db_table = 'generator_test_demo'
verbose_name = '测试案例'
verbose_name_plural = verbose_name
ordering = ('-create_datetime',)

View File

@@ -0,0 +1,6 @@
from ninja import Router
from .api import router
test_demo_router = Router()
test_demo_router.add_router('/', router, tags=['测试案例'])