From da3b0f62e5ec84926bc0e3c9867d2275fa6830d9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 28 Aug 2024 17:09:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0change=5Fdata?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enm/migrations/0044_xscript_change_data.py | 18 ++++++++++++++++++ apps/enm/models.py | 1 + apps/enm/serializers.py | 2 +- apps/enm/views.py | 10 ++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 apps/enm/migrations/0044_xscript_change_data.py diff --git a/apps/enm/migrations/0044_xscript_change_data.py b/apps/enm/migrations/0044_xscript_change_data.py new file mode 100644 index 00000000..0760d372 --- /dev/null +++ b/apps/enm/migrations/0044_xscript_change_data.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2024-08-28 08:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('enm', '0043_xscript'), + ] + + operations = [ + migrations.AddField( + model_name='xscript', + name='change_data', + field=models.JSONField(blank=True, default=dict, null=True, verbose_name='变更数据'), + ), + ] diff --git a/apps/enm/models.py b/apps/enm/models.py index d778cb2f..cce4e43e 100644 --- a/apps/enm/models.py +++ b/apps/enm/models.py @@ -8,6 +8,7 @@ class Xscript(BaseModel): name = models.CharField("脚本名称", max_length=50) code = models.TextField("脚本内容", null=True, blank=True) base_data = models.JSONField("基础数据", default=dict, null=True, blank=True) + change_data = models.JSONField("变更数据", default=dict, null=True, blank=True) myschedule = models.ForeignKey('system.myschedule', verbose_name='周期', on_delete=models.SET_NULL, null=True, blank=True) periodictask = models.ForeignKey(PeriodicTask, verbose_name='关联定时任务', on_delete=models.CASCADE, related_name='xscript_periodictask', null=True, blank=True) diff --git a/apps/enm/serializers.py b/apps/enm/serializers.py index c7fd3331..7593c0d5 100644 --- a/apps/enm/serializers.py +++ b/apps/enm/serializers.py @@ -201,7 +201,7 @@ class XscriptSerializer(CustomModelSerializer): class Meta: model = Xscript fields = "__all__" - read_only_fields = EXCLUDE_FIELDS_BASE + ['periodictask'] + read_only_fields = EXCLUDE_FIELDS_BASE + ['periodictask', 'change_data'] def validate(self, attrs): code = attrs['code'] diff --git a/apps/enm/views.py b/apps/enm/views.py index 6552d645..17babbaa 100644 --- a/apps/enm/views.py +++ b/apps/enm/views.py @@ -92,6 +92,16 @@ class XscriptViewSet(CustomModelViewSet): periodictask.save() return Response() + @action(methods=['put'], detail=True, perms_map={'put': 'xscript.update'}) + def change_data(self, request, pk=None): + """修改变动数据 + + 修改变动数据 + """ + obj: Xscript = self.get_object() + obj.change_data = request.data.get('change_data', {}) + return Response() + @transaction.atomic def perform_destroy(self, instance): periodictask = instance.periodictask