feat: 添加系统配置表单
This commit is contained in:
@@ -3,7 +3,13 @@ from datetime import datetime
|
||||
from django.core.management.base import BaseCommand
|
||||
from system.models import Menu, MenuMeta
|
||||
import re
|
||||
"""
|
||||
自动生成 菜单 代码的 Django 管理命令
|
||||
使用方法: python manage.py gen_menu_json <app> <model> <parent>
|
||||
例如: python manage.py gen_menu_json system Config 系统管理
|
||||
"""
|
||||
|
||||
# gen_menu_json --app system --model Config --parent 系统管理
|
||||
def camel_to_snake(name):
|
||||
s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
|
||||
return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
|
||||
|
||||
128
backend/system/migrations/0004_config.py
Normal file
128
backend/system/migrations/0004_config.py
Normal file
@@ -0,0 +1,128 @@
|
||||
# Generated by Django 5.2.1 on 2025-09-27 02:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("system", "0003_loginlog_location"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Config",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.BigAutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"remark",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="备注",
|
||||
help_text="备注",
|
||||
max_length=256,
|
||||
null=True,
|
||||
verbose_name="备注",
|
||||
),
|
||||
),
|
||||
(
|
||||
"creator",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="创建人",
|
||||
help_text="创建人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="创建人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modifier",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_comment="修改人",
|
||||
help_text="修改人",
|
||||
max_length=64,
|
||||
null=True,
|
||||
verbose_name="修改人",
|
||||
),
|
||||
),
|
||||
(
|
||||
"update_time",
|
||||
models.DateTimeField(
|
||||
auto_now=True,
|
||||
db_comment="修改时间",
|
||||
help_text="修改时间",
|
||||
null=True,
|
||||
verbose_name="修改时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"create_time",
|
||||
models.DateTimeField(
|
||||
auto_now_add=True,
|
||||
db_comment="创建时间",
|
||||
help_text="创建时间",
|
||||
null=True,
|
||||
verbose_name="创建时间",
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_deleted",
|
||||
models.BooleanField(
|
||||
db_comment="是否软删除",
|
||||
default=False,
|
||||
verbose_name="是否软删除",
|
||||
),
|
||||
),
|
||||
(
|
||||
"name",
|
||||
models.CharField(
|
||||
db_comment="参数名称",
|
||||
default="",
|
||||
max_length=100,
|
||||
verbose_name="参数名称",
|
||||
),
|
||||
),
|
||||
(
|
||||
"key",
|
||||
models.CharField(
|
||||
db_comment="参数键名",
|
||||
default="",
|
||||
max_length=100,
|
||||
verbose_name="参数键名",
|
||||
),
|
||||
),
|
||||
(
|
||||
"value",
|
||||
models.CharField(
|
||||
db_comment="参数键值",
|
||||
default="",
|
||||
max_length=500,
|
||||
verbose_name="参数键值",
|
||||
),
|
||||
),
|
||||
(
|
||||
"config_type",
|
||||
models.BooleanField(
|
||||
db_comment="系统内置(1是 0否)",
|
||||
default=False,
|
||||
verbose_name="系统内置",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name": "参数配置",
|
||||
"verbose_name_plural": "参数配置",
|
||||
"ordering": ["-id"],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -306,3 +306,26 @@ class LoginLog(CoreModel):
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.username} - {self.user_ip}"
|
||||
|
||||
|
||||
class Config(CoreModel):
|
||||
"""
|
||||
参数配置表
|
||||
"""
|
||||
name = models.CharField(max_length=100, default='', db_comment='参数名称', verbose_name='参数名称')
|
||||
key = models.CharField(max_length=100, default='', db_comment='参数键名', verbose_name='参数键名')
|
||||
value = models.CharField(max_length=500, default='', db_comment='参数键值', verbose_name='参数键值')
|
||||
config_type = models.BooleanField(
|
||||
default=False,
|
||||
db_comment='系统内置(1是 0否)',
|
||||
verbose_name='系统内置'
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '参数配置'
|
||||
verbose_name_plural = verbose_name
|
||||
ordering = ['-id']
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name}({self.key})"
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ router.register(r'dict_type', views.DictTypeViewSet)
|
||||
router.register(r'post', views.PostViewSet)
|
||||
router.register(r'user', views.UserViewSet)
|
||||
router.register(r'login_log', views.LoginLogViewSet)
|
||||
router.register(r'config', views.ConfigViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
path('', include(router.urls)),
|
||||
|
||||
@@ -7,6 +7,7 @@ __all__ = [
|
||||
'DictTypeViewSet',
|
||||
'PostViewSet',
|
||||
'UserViewSet',
|
||||
'ConfigViewSet',
|
||||
'LoginLogViewSet',
|
||||
]
|
||||
|
||||
@@ -18,4 +19,5 @@ from system.views.role import RoleViewSet
|
||||
from system.views.dept import DeptViewSet
|
||||
from system.views.post import PostViewSet
|
||||
from system.views.login_log import LoginLogViewSet
|
||||
from system.views.config import ConfigViewSet
|
||||
from system.views.user import *
|
||||
37
backend/system/views/config.py
Normal file
37
backend/system/views/config.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from system.models import Config
|
||||
from utils.serializers import CustomModelSerializer
|
||||
from utils.custom_model_viewSet import CustomModelViewSet
|
||||
from django_filters import rest_framework as filters, CharFilter
|
||||
|
||||
|
||||
class ConfigSerializer(CustomModelSerializer):
|
||||
"""
|
||||
参数配置 序列化器
|
||||
"""
|
||||
class Meta:
|
||||
model = Config
|
||||
fields = '__all__'
|
||||
read_only_fields = ['id', 'create_time', 'update_time']
|
||||
|
||||
|
||||
class ConfigFilter(filters.FilterSet):
|
||||
name = CharFilter(field_name='name', lookup_expr='icontains')
|
||||
key = CharFilter(field_name='key', lookup_expr='icontains')
|
||||
value = CharFilter(field_name='value', lookup_expr='icontains')
|
||||
remark = CharFilter(field_name='remark', lookup_expr='icontains')
|
||||
|
||||
class Meta:
|
||||
model = Config
|
||||
fields = ['id', 'remark', 'creator', 'modifier', 'is_deleted', 'name', 'key', 'value', 'config_type']
|
||||
|
||||
|
||||
class ConfigViewSet(CustomModelViewSet):
|
||||
"""
|
||||
参数配置 视图集
|
||||
"""
|
||||
queryset = Config.objects.filter(is_deleted=False).order_by('-id')
|
||||
serializer_class = ConfigSerializer
|
||||
filterset_class = ConfigFilter
|
||||
search_fields = ['name'] # 根据实际字段调整
|
||||
ordering_fields = ['create_time', 'id']
|
||||
ordering = ['-create_time']
|
||||
Reference in New Issue
Block a user