Jelajahi Sumber

修改子设备关联移除外键,新增删除家庭

zhangdongming 3 tahun lalu
induk
melakukan
02aa230fee

+ 29 - 0
Controller/SensorGateway/GatewayFamilyMemberController.py

@@ -60,6 +60,35 @@ class GatewayFamilyMemberView(View):
             return self.member_del(app_user_id, request_dict, response)
         elif operation == 'created':
             return self.family_created(app_user_id, request_dict, response)
+        elif operation == 'del/home':
+            return self.del_home(app_user_id, request_dict, response)
+
+    @classmethod
+    def del_home(cls, app_user_id, request_dict, response):
+        """
+        删除家庭
+        @param app_user_id:
+        @param request_dict:
+        @param response:
+        @return:
+        """
+        familyId = request_dict.get('familyId', None)
+        if not familyId:
+            return response.json(444)
+        is_owner = EquipmentFamilyView.get_family_owner(app_user_id, familyId)
+        if not is_owner:
+            return response.json(404)
+        familyId = int(familyId)
+        try:
+            with transaction.atomic():
+                user_family_qs = UserFamily.objects.filter(id=familyId)
+                if user_family_qs.exists():
+                    user_family_qs.delete()
+                    return response.json(0)
+            return response.json(176)
+        except Exception as e:
+            print(e)
+            return response.json(177, repr(e))
 
     @classmethod
     def family_created(cls, app_user_id, request_dict, response):

+ 1 - 2
Model/models.py

@@ -2537,8 +2537,7 @@ class FamilyRoomDevice(models.Model):
     family_id = models.IntegerField(default=0, blank=True, verbose_name=u'家庭id')
     device = models.ForeignKey(Device_Info, to_field='id', default='', on_delete=models.CASCADE,
                                verbose_name='关联设备信息id')
-    sub_device = models.ForeignKey(GatewaySubDevice, to_field='id', default='', on_delete=models.CASCADE,
-                                   verbose_name='关联子设备信息id')
+    sub_device = models.IntegerField(default=0, blank=True, verbose_name='关联子设备信息id')
     sort = models.IntegerField(default=0, blank=True, verbose_name=u'排序,越小越靠前')
     updated_time = models.IntegerField(default=0, verbose_name='更新时间')
     created_time = models.IntegerField(default=0, verbose_name='创建时间')