# mosquito api done
This commit is contained in:
parent
f69bf49d85
commit
dd946943e4
|
@ -1,10 +1,22 @@
|
|||
from rest_framework import serializers
|
||||
from mosquito.models import MosqPost
|
||||
from mosquito.models import Mosquito ,MosqPost
|
||||
from smart.api.serializers import SmartListSerializer
|
||||
|
||||
|
||||
class MosqListSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Mosquito
|
||||
fields = [
|
||||
'name',
|
||||
'device_id',
|
||||
'region'
|
||||
]
|
||||
|
||||
|
||||
class MosqPostListSerializer(serializers.ModelSerializer):
|
||||
smart_chip = serializers.SerializerMethodField()
|
||||
region = serializers.SerializerMethodField()
|
||||
smarts = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = MosqPost
|
||||
|
@ -12,15 +24,15 @@ class MosqPostListSerializer(serializers.ModelSerializer):
|
|||
'mosq',
|
||||
'led',
|
||||
'energy',
|
||||
'smart_chip'
|
||||
'signal',
|
||||
'coordinate'
|
||||
'region'
|
||||
'time'
|
||||
'region',
|
||||
'smarts',
|
||||
'time',
|
||||
]
|
||||
|
||||
def get_smart_chip(self, obj):
|
||||
return obj.mosq.smart_module.device_id
|
||||
|
||||
def get_region(self, obj):
|
||||
return obj.mosq.region
|
||||
return obj.mosq.region
|
||||
|
||||
def get_smarts(self, obj):
|
||||
smart_queryset = obj.mosq.smart_module.all()
|
||||
smarts = SmartListSerializer(smart_queryset, many=True).data
|
||||
return smarts
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
from django.urls import path, re_path
|
||||
from .views import MosquitoListAPIView
|
||||
|
||||
|
||||
app_name = 'mosq-api'
|
||||
urlpatterns = [
|
||||
path('', MosquitoListAPIView.as_view(), name='list')
|
||||
]
|
|
@ -0,0 +1,28 @@
|
|||
from rest_framework.generics import (
|
||||
ListAPIView,
|
||||
RetrieveAPIView,
|
||||
CreateAPIView
|
||||
)
|
||||
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
||||
from django.db.models import Q
|
||||
from ..models import Mosquito
|
||||
from .serializers import MosqListSerializer
|
||||
|
||||
|
||||
class MosquitoListAPIView(ListAPIView):
|
||||
serializer_class = MosqListSerializer
|
||||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
search_fields = ['name', 'device_id', 'region']
|
||||
|
||||
def get_queryset(self, *args, **kwargs):
|
||||
queryset_list = Mosquito.objects.all()
|
||||
query = self.request.GET.get('q')
|
||||
if query:
|
||||
queryset_list = queryset_list.filter(
|
||||
Q(name__icontains=query) |
|
||||
Q(device_id__icontains=query) |
|
||||
Q(region__icontains=query)
|
||||
).distinct()
|
||||
return queryset_list
|
|
@ -0,0 +1,14 @@
|
|||
from rest_framework import serializers
|
||||
from smart.models import SmartModule
|
||||
|
||||
|
||||
class SmartListSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = SmartModule
|
||||
fields = [
|
||||
'name',
|
||||
'desc'
|
||||
'device_id',
|
||||
'chip_id'
|
||||
]
|
|
@ -39,6 +39,7 @@ INSTALLED_APPS = [
|
|||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'rest_framework',
|
||||
'mosquito',
|
||||
'smart',
|
||||
]
|
||||
|
|
|
@ -14,8 +14,9 @@ Including another URLconf
|
|||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
path('mosq_admin/', admin.site.urls),
|
||||
path('api/mosq/', include('mosquito.api.urls')),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue