|
@@ -200,6 +200,72 @@ class Device_User(AbstractBaseUser):
|
|
|
def is_staff(self):
|
|
|
return self.is_superuser
|
|
|
|
|
|
+class Device_Info(models.Model):
|
|
|
+ id = models.CharField(blank=True, max_length=32, primary_key=True)
|
|
|
+ userID = models.ForeignKey(Device_User, blank=True, to_field='userID', on_delete=models.CASCADE)
|
|
|
+ NickName = models.CharField(blank=True, max_length=32, verbose_name=u'设备名称')
|
|
|
+ UID = models.CharField(blank=True, max_length=32, verbose_name=u'设备UID', default='')
|
|
|
+ SID = models.CharField(blank=True, max_length=32, verbose_name=u'服务器ID', default='')
|
|
|
+ View_Account = models.CharField(blank=True, max_length=32, verbose_name=u'设备用户名称', default='')
|
|
|
+ View_Password = models.CharField(blank=True, max_length=32, verbose_name=u'设备密码', default='')
|
|
|
+ AudioFormat = models.IntegerField(blank=True, default=1, verbose_name=u'初始化影像')
|
|
|
+ EventNotification = models.IntegerField(blank=True, verbose_name=u'报警类型', default=0)
|
|
|
+ ChannelIndex = models.IntegerField(blank=True, verbose_name=u'通道号', default=0)
|
|
|
+ Online = models.BooleanField(blank=True, default=False, verbose_name=u'设备是否在线')
|
|
|
+ mMonitorIndex = models.IntegerField(blank=True, default=-1)
|
|
|
+ Type = models.IntegerField(blank=True, verbose_name='设备类型')
|
|
|
+ DebugMode = models.IntegerField(blank=True, verbose_name=u'调试模式', default=0)
|
|
|
+ NotificationMode = models.IntegerField(blank=True, verbose_name=u'是否报警', default=0)
|
|
|
+ qvgaLevel = models.BooleanField(blank=True, verbose_name=u'SD与HD画面', default=0,
|
|
|
+ help_text=u'0代表:SD、1代表:HD')
|
|
|
+ isShare = models.BooleanField(blank=True, verbose_name=u'共享设备',
|
|
|
+ help_text=u'是否为共享获取的设备', default=False)
|
|
|
+ primaryUserID = models.CharField(blank=True, verbose_name='主用户id', max_length=32, default='')
|
|
|
+ primaryMaster = models.CharField(max_length=64, verbose_name=u'主用户名', default='')
|
|
|
+ data_joined = models.DateTimeField(blank=True, verbose_name=u'设备添加时间', auto_now_add=True)
|
|
|
+ update_time = models.DateTimeField(blank=True, verbose_name=u'更新时间', auto_now=True, null=True)
|
|
|
+
|
|
|
+ ip = models.CharField(blank=True, max_length=20, default='', verbose_name=u'设备区域ip')
|
|
|
+ area = models.CharField(blank=True, max_length=100, default='', verbose_name=u'设备区域area')
|
|
|
+ # ios要求新增字段
|
|
|
+ version = models.CharField(blank=True, max_length=20, default='', verbose_name=u'版本号')
|
|
|
+ SpaceUsable = models.CharField(blank=True, max_length=20, default='', verbose_name=u'可用空间')
|
|
|
+ SpaceSum = models.CharField(blank=True, max_length=20, default='', verbose_name=u'总空间')
|
|
|
+ WIFIName = models.CharField(blank=True, max_length=50, default='', verbose_name=u'无线名称')
|
|
|
+ WIFIIP = models.CharField(blank=True, max_length=20, default='', verbose_name=u'无线ip')
|
|
|
+ WIFIPwd = models.CharField(blank=True, max_length=50, default='', verbose_name=u'无线密码')
|
|
|
+ isDetector = models.BooleanField(blank=True, verbose_name=u'侦测开关0:关闭,1:开启)', default=False)
|
|
|
+ DetectorRank = models.IntegerField(blank=True, default=0, verbose_name=u'侦测灵敏度 1:低,2:中,3:高4:最高')
|
|
|
+ iSNotification = models.BooleanField(blank=True, verbose_name=u'报警通知 0:关闭,1:开启)', default=False)
|
|
|
+ MirrorType = models.IntegerField(blank=True, default=0, verbose_name=u'镜像类型 0:关闭镜像,1:上下镜像,2:左右镜像,3:上下左右镜像')
|
|
|
+ RecordType = models.IntegerField(blank=True, default=0, verbose_name=u'录像模式(0:关闭,1:全是录像,3:报警录像)')
|
|
|
+ TimeZone = models.CharField(blank=True, max_length=50, default='', verbose_name=u'时区')
|
|
|
+ isVod = models.SmallIntegerField(blank=True, default=0, verbose_name='是否支持云存') # 是否支持云存设备
|
|
|
+ isExist = models.SmallIntegerField(blank=True, default=1, verbose_name='是否被删除') # 是否被删除了(需主用户交互) 1存在,0不存在,2设备被重置
|
|
|
+ ###
|
|
|
+ REQUIRED_FIELDS = []
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return self.NickName
|
|
|
+
|
|
|
+ def model_to_dict(self, fields=None, exclude=None):
|
|
|
+ opts = self._meta
|
|
|
+ data = {}
|
|
|
+ for f in chain(opts.concrete_fields, opts.private_fields, opts.many_to_many):
|
|
|
+ if not getattr(f, 'editable', False):
|
|
|
+ continue
|
|
|
+ if fields and f.name not in fields:
|
|
|
+ continue
|
|
|
+ if exclude and f.name in exclude:
|
|
|
+ continue
|
|
|
+ data[f.name] = f.value_from_object(self)
|
|
|
+ return data
|
|
|
+
|
|
|
+ class Meta:
|
|
|
+ db_table = 'device_info'
|
|
|
+ ordering = ('-data_joined',)
|
|
|
+ verbose_name = u'用户设备信息表'
|
|
|
+ verbose_name_plural = verbose_name
|
|
|
|
|
|
class Equipment_Info(models.Model):
|
|
|
id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
|