爱租房项目、地区/户型/的查询

编程入门 行业动态 更新时间:2024-10-25 16:19:22

爱租房项目、地区/<a href=https://www.elefans.com/category/jswz/34/913348.html style=户型/的查询"/>

爱租房项目、地区/户型/的查询

序列化器 api/serializers.py中

from rest_framework import serializersfrom common.models import District, HouseTypeclass DistrictSimpleSerializer(serializers.ModelSerializer):'''省级行政区序列化'''class Meta:model = Districtfields = ('distid','name')   #要序列化的字段class DistrictDetaliSerializer(serializers.ModelSerializer):cities = serializers.SerializerMethodField()@staticmethod
def get_cities(district):queryset = District.objects.filter(parent__distid=district.distid)return DistrictSimpleSerializer(queryset,many=True).dataclass Meta:model = Districtexclude = ('parent','ishot')class HouseTypeSerializer(serializers.ModelSerializer):'''户型'''class Meta:model = HouseTypefields = '__all__'

api接口的函数 api/views.py中

from django.http import HttpRequest, HttpResponse
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from rest_framework.decorators import api_view
from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSetfrom api.serializers import DistrictSimpleSerializer, DistrictDetaliSerializer, \HouseTypeSerializer
from common.models import District, HouseType@api_view(('GET',))                                        #接受get请求,用rest_framework
@cache_page(timeout=365*86400,cache='default')             #配置缓存
def  get_provinces(request:HttpRequest)  -> HttpResponse:  #省级行政区queryset = District.objects.filter(parent__isnull=True)serializer = DistrictSimpleSerializer(queryset,many=True)return Response({'provinces':serializer.data})@api_view(('GET',))                             #拿省底下的市
@cache_page(timeout=600,cache='default')
def get_cities(request,distid):district = District.objects.get(distid=distid)serializer = DistrictDetaliSerializer(district)return Response(serializer.data)@method_decorator(decorator=cache_page(timeout=86400,cache='default'),name='get')
class HotCitiesView(ListAPIView): #类装饰器(用来装饰方法,name='get',用来装饰get方法)queryset = District.objects.filter(ishot=True)serializer_class = DistrictSimpleSerializerclass HouseTypeViewSet(ModelViewSet):   #ModelViewSet要注册路由queryset = HouseType.objects.all()serializer_class = HouseTypeSerializer

api/urls.py中

from django.urls import path
from rest_framework.routers import DefaultRouter
from api.views import get_provinces, get_cities, HotCitiesView, HouseTypeViewSeturlpatterns = [path('districts/',get_provinces),path('districts/<int:distid>',get_cities),path('hotcities/',HotCitiesView.as_view()),  #把类变方法]router = DefaultRouter()  #户型的接口
router.register('housetypes',HouseTypeViewSet)
urlpatterns += router.urls

添加调试工具栏debug_toolbar

#settings.py中
INSTALLED_APPS = [         #加入debug_toolbar应用...'debug_toolbar',]MIDDLEWARE = [            #加入debug_toolbar中间键'debug_toolbar.middleware.DebugToolbarMiddleware',...]# 调试工具栏                     #在前端加入工具栏
DEBUG_TOOLBAR_CONFIG = {# 引入jquery库'JQUERY_URL': '.4.1/jquery.min.js',# 工具栏是否折叠'SHOW_COLLAPSED': True,# 是否显示工具栏'SHOW_TOOLBAR_CALLBACK': lambda x: True,
}#项目主应用下urls.py中
from django.conf import settings
if settings.DEBUG:import debug_toolbarurlpatterns.insert(0, path('__debug__/', include(debug_toolbar.urls)))

更多推荐

爱租房项目、地区/户型/的查询

本文发布于:2024-02-11 07:16:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679794.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:户型   地区   项目

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!