# add smart
This commit is contained in:
parent
8965b5d190
commit
f69bf49d85
|
@ -0,0 +1,26 @@
|
||||||
|
from rest_framework import serializers
|
||||||
|
from mosquito.models import MosqPost
|
||||||
|
|
||||||
|
|
||||||
|
class MosqPostListSerializer(serializers.ModelSerializer):
|
||||||
|
smart_chip = serializers.SerializerMethodField()
|
||||||
|
region = serializers.SerializerMethodField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = MosqPost
|
||||||
|
fields = [
|
||||||
|
'mosq',
|
||||||
|
'led',
|
||||||
|
'energy',
|
||||||
|
'smart_chip'
|
||||||
|
'signal',
|
||||||
|
'coordinate'
|
||||||
|
'region'
|
||||||
|
'time'
|
||||||
|
]
|
||||||
|
|
||||||
|
def get_smart_chip(self, obj):
|
||||||
|
return obj.mosq.smart_module.device_id
|
||||||
|
|
||||||
|
def get_region(self, obj):
|
||||||
|
return obj.mosq.region
|
|
@ -1,31 +1,20 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.contrib.contenttypes.fields import GenericRelation
|
||||||
|
from smart.models import SmartModule
|
||||||
class SmartModule(models.Model):
|
|
||||||
name = models.CharField(max_length=50, verbose_name='模块名称')
|
|
||||||
device_id = models.CharField(max_length=100, verbose_name='模块ID')
|
|
||||||
chip_id = models.CharField(max_length=100, verbose_name='单片机ID')
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = '智能模块'
|
|
||||||
verbose_name_plural = verbose_name
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
|
|
||||||
class Mosquito(models.Model):
|
class Mosquito(models.Model):
|
||||||
name = models.CharField(max_length=100, verbose_name='设备名称')
|
name = models.CharField(max_length=100, verbose_name='设备名称')
|
||||||
device_id = models.CharField(max_length=100, verbose_name='设备ID')
|
device_id = models.CharField(max_length=100, verbose_name='设备ID')
|
||||||
smart_module = models.ForeignKey(SmartModule, on_delete='PROTECT')
|
|
||||||
region = models.CharField(max_length=50, verbose_name='区域')
|
region = models.CharField(max_length=50, verbose_name='区域')
|
||||||
|
smart_module = GenericRelation(SmartModule)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = '灭蚊灯'
|
verbose_name = '灭蚊灯'
|
||||||
verbose_name_plural = verbose_name
|
verbose_name_plural = verbose_name
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.device_id
|
return self.name
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
pass
|
pass
|
||||||
|
@ -36,9 +25,10 @@ class Mosquito(models.Model):
|
||||||
|
|
||||||
class MosqPost(models.Model):
|
class MosqPost(models.Model):
|
||||||
mosq = models.ForeignKey(Mosquito, verbose_name='灭蚊灯', on_delete='PROTECT')
|
mosq = models.ForeignKey(Mosquito, verbose_name='灭蚊灯', on_delete='PROTECT')
|
||||||
led = models.PositiveIntegerField(max_length=30, verbose_name='灭蚊数')
|
led = models.PositiveIntegerField(verbose_name='灭蚊数')
|
||||||
energy = models.PositiveIntegerField(max_length=10, verbose_name='电量')
|
energy = models.PositiveIntegerField(verbose_name='电量')
|
||||||
signal = models.IntegerField(max_length=10, verbose_name='信号')
|
# signal = models.IntegerField(verbose_name='信号')
|
||||||
|
# coordinate = models.CharField(max_length=100, verbose_name='坐标')
|
||||||
times = models.DateTimeField(auto_now=False, auto_now_add=True)
|
times = models.DateTimeField(auto_now=False, auto_now_add=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class SmartConfig(AppConfig):
|
||||||
|
name = 'smart'
|
|
@ -0,0 +1,21 @@
|
||||||
|
from django.db import models
|
||||||
|
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||||
|
from django.contrib.contenttypes.fields import GenericRelation
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
|
||||||
|
|
||||||
|
class SmartModule(models.Model):
|
||||||
|
name = models.CharField(max_length=50, verbose_name='模块名称')
|
||||||
|
desc = models.CharField(max_length=200, verbose_name='简介')
|
||||||
|
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
|
object_id = models.PositiveIntegerField()
|
||||||
|
content_object = GenericForeignKey('content_type', 'object_id')
|
||||||
|
device_id = models.CharField(max_length=100, verbose_name='模块ID')
|
||||||
|
chip_id = models.CharField(max_length=100, verbose_name='单片机ID')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = '智能模块'
|
||||||
|
verbose_name_plural = verbose_name
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
|
@ -0,0 +1,3 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
|
@ -40,6 +40,7 @@ INSTALLED_APPS = [
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'mosquito',
|
'mosquito',
|
||||||
|
'smart',
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|
Loading…
Reference in New Issue