# add smart list api
This commit is contained in:
parent
dd946943e4
commit
eee95c77bc
|
@ -8,7 +8,6 @@ class SmartListSerializer(serializers.ModelSerializer):
|
||||||
model = SmartModule
|
model = SmartModule
|
||||||
fields = [
|
fields = [
|
||||||
'name',
|
'name',
|
||||||
'desc'
|
|
||||||
'device_id',
|
'device_id',
|
||||||
'chip_id'
|
'chip_id'
|
||||||
]
|
]
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
from django.urls import path
|
||||||
|
from .views import SmartListAPIView
|
||||||
|
|
||||||
|
|
||||||
|
app_name = 'smart-api'
|
||||||
|
urlpatterns = [
|
||||||
|
path('', SmartListAPIView.as_view(), name='list')
|
||||||
|
]
|
|
@ -0,0 +1,29 @@
|
||||||
|
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 .serializers import SmartListSerializer
|
||||||
|
from ..models import SmartModule
|
||||||
|
|
||||||
|
|
||||||
|
class SmartListAPIView(ListAPIView):
|
||||||
|
serializer_class = SmartListSerializer
|
||||||
|
filter_backends = [SearchFilter, OrderingFilter]
|
||||||
|
search_fields = ['name', 'device_id', 'chip_id', 'region']
|
||||||
|
|
||||||
|
def get_queryset(self, *args, **kwargs):
|
||||||
|
queryset_list = SmartModule.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(chip_id__contains=query) |
|
||||||
|
Q(region__icontains=query)
|
||||||
|
).distinct()
|
||||||
|
return queryset_list
|
|
@ -1,6 +1,5 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||||
from django.contrib.contenttypes.fields import GenericRelation
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,4 +19,5 @@ from django.urls import path, include
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('mosq_admin/', admin.site.urls),
|
path('mosq_admin/', admin.site.urls),
|
||||||
path('api/mosq/', include('mosquito.api.urls')),
|
path('api/mosq/', include('mosquito.api.urls')),
|
||||||
|
path('api/smart/', include('smart.api.urls')),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue