From 3a7146ef0a53a32498720b3b466a1602647d9c30 Mon Sep 17 00:00:00 2001 From: RogerWork Date: Fri, 18 Jul 2025 16:20:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=B1=E9=99=A2=E6=95=B0=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4=E6=A0=87=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update/models.py | 1 + update/serializers.py | 2 +- update/utils/get_version.py | 5 +++-- update/views.py | 7 ++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/update/models.py b/update/models.py index 9ece1e8..060bd2e 100644 --- a/update/models.py +++ b/update/models.py @@ -21,6 +21,7 @@ class Cinema(BaseModels): remote_label = models.CharField(verbose_name='远程办公id', max_length=20, null=True, default='', help_text='远程办公id') ver_id = models.IntegerField(verbose_name='版本id', null=False, default=0, help_text='版本id') + is_delete = models.BooleanField(verbose_name='是否删除', default=False, help_text='是否删除') def __str__(self): return self.ip diff --git a/update/serializers.py b/update/serializers.py index 5bcb8de..7f77a22 100644 --- a/update/serializers.py +++ b/update/serializers.py @@ -9,7 +9,7 @@ class CinemaSerializer(serializers.ModelSerializer): model = Cinema fields = ( 'id', 'name', 'ip', 'zz_num', 'inner_id', 'db_user', 'db_pwd', 'sys_ver', 'client_ver', 'user', - 'update_time', 'is_cloud', 'remote_label', 'ver_id') + 'update_time', 'is_cloud', 'remote_label', 'ver_id', 'is_delete') class CinemaUserSerializer(serializers.ModelSerializer): diff --git a/update/utils/get_version.py b/update/utils/get_version.py index 92061d7..9410655 100644 --- a/update/utils/get_version.py +++ b/update/utils/get_version.py @@ -5,6 +5,7 @@ from update.models import Cinema, CinemaUser import queue import threading from django.utils import timezone +from django.db.models import Q import datetime @@ -17,9 +18,9 @@ class GetVersion(object): def get_all_cinema(self): print('get_all_cinema') if self.cinema_ip_list is None: - all_cinema_obj = Cinema.objects.all() + all_cinema_obj = Cinema.objects.filter(is_delete=False).all() else: - all_cinema_obj = Cinema.objects.filter(ip__in=self.cinema_ip_list) + all_cinema_obj = Cinema.objects.filter(Q(ip__in=self.cinema_ip_list) & Q(is_delete=False)).all() for cinema_obj in all_cinema_obj: print(cinema_obj) data = { diff --git a/update/views.py b/update/views.py index 1532cb1..0610c5e 100644 --- a/update/views.py +++ b/update/views.py @@ -41,8 +41,9 @@ class CinemaViewSet(CacheResponseMixin, viewsets.ModelViewSet): retrieve: 获取某个影院的信息 update: 更新某个影院的信息 delete: 删除指定影院 + .filter(is_delete=False) """ - queryset = Cinema.objects.all() + queryset = Cinema.objects.filter(is_delete=False).all() serializer_class = CinemaSerializer # permission_classes = (permissions.IsAuthenticated,) filter_backends = (filters.SearchFilter, DjangoFilterBackend, OrderingFilter) @@ -56,7 +57,7 @@ class CinemaViewSet(CacheResponseMixin, viewsets.ModelViewSet): @method_decorator(cache_page(60 * 1)) def refresh(self, request, *args, **kwargs): GetVersion().main_process() - queryset = Cinema.objects.all().order_by('ip') + queryset = Cinema.objects.filter(is_delete=False).all().order_by('ip') serializer = self.get_serializer(instance=queryset, many=True) return Response(serializer.data) @@ -85,7 +86,7 @@ class UpdateAlterViewSet(CacheResponseMixin, viewsets.ModelViewSet): def update_user(request, *args, **kwargs): cinema_id = request.GET.dict().get('id') user = json.loads(request.body).get('user', '暂无') - result = Cinema.objects.filter(id=cinema_id).update(user=user) + result = Cinema.objects.filter(Q(id=cinema_id) & Q(is_delete=False)).update(user=user) return JsonResponse({'result': 'success'} if result == 1 else {'result': 'fail'})