Django 前后端分离实战项目 生鲜超市(六)之商品类别数据

编程入门 行业动态 更新时间:2024-10-09 20:25:37

Django 前后端分离实战项目 <a href=https://www.elefans.com/category/jswz/34/1767836.html style=生鲜超市(六)之商品类别数据"/>

Django 前后端分离实战项目 生鲜超市(六)之商品类别数据

商品类别数据

前言

代码已上传至github:

此项目仅学习用途

要求

Package Version


certifi 2020.4.5.1
chardet 3.0.4
coreapi 2.3.1
coreschema 0.0.4
Django 1.11.3
django-crispy-forms 1.6.1
django-filter 1.0.4
django-formtools 2.0
django-guardian 1.4.9
django-reversion 2.0.9
djangorestframework 3.6.3
future 0.16.0
httplib2 0.9.2
idna 2.9
itypes 1.2.0
Jinja2 2.11.2
Markdown 2.6.8
MarkupSafe 1.1.1
mysqlclient 1.3.10
olefile 0.46
Pillow 4.2.1
pip 20.0.2
pytz 2019.3
requests 2.23.0
setuptools 46.1.3
six 1.10.0
uritemplate 3.0.1
urllib3 1.25.9
wheel 0.34.2
XlsxWriter 0.9.8
xlwt 1.2.0

流程

更改goods下serializers.py

serializers.py

from rest_framework import serializers
from django.db.models import Qfrom goods.models import Goods, GoodsCategoryclass CategorySerializer3(serializers.ModelSerializer):class Meta:model = GoodsCategoryfields = "__all__"class CategorySerializer2(serializers.ModelSerializer):sub_cat = CategorySerializer3(many=True)class Meta:model = GoodsCategoryfields = "__all__"class CategorySerializer(serializers.ModelSerializer):sub_cat = CategorySerializer2(many=True)class Meta:model = GoodsCategoryfields = "__all__"class GoodsSerializer(serializers.ModelSerializer):category = CategorySerializer()class Meta:model = Goodsfields = "__all__"class GoodCategorySerializer(serializers.ModelSerializer):'''商品类别序列化'''class Meta:model = Goodsfields = "__all__"

在Mxshop下url.py修改如下

url.py

from django.conf.urls import url,include
# from django.contrib import admin
import xadmin
from Mxshop.settings import MEDIA_ROOT
from django.views.static import serve
from rest_framework.documentation import include_docs_urls
from rest_framework.routers import DefaultRouterfrom goods.views import GoodsListViewSet,CategoryViewsetrouter = DefaultRouter()#配置goods的url
router.register(r'goods', GoodsListViewSet, base_name="goods")#配置category的url
router.register(r'categorys', CategoryViewset, base_name="categorys")goods_list = GoodsListViewSet.as_view({'get': 'list',
})urlpatterns = [url(r'^xadmin/', xadmin.site.urls),url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),url(r'^', include(router.urls)),url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),url(r'docs/',include_docs_urls(title='GOHB生鲜'))
]

修改goods文件夹下views.py

views.py

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import mixins
from rest_framework import generics
from rest_framework import filters
from rest_framework.pagination import PageNumberPagination
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsetsfrom .models import Goods,GoodsCategory
from .serializers import GoodsSerializer,CategorySerializer
from .filters import GoodsFilter
# Create your views here.class GoodsPagination(PageNumberPagination):page_size = 12page_size_query_param = 'page_size'page_query_param = "page"max_page_size = 100class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):"""商品列表页, 分页, 搜索, 过滤, 排序"""queryset = Goods.objects.all()serializer_class = GoodsSerializerpagination_class = GoodsPaginationfilter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)filter_class = GoodsFiltersearch_fields = ('name', 'goods_brief', 'goods_desc')ordering_fields = ('sold_num', 'shop_price')class CategoryViewset(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):"""list:商品分类列表数据"""queryset = GoodsCategory.objects.filter(category_type=1)serializer_class = CategorySerializer


这样后台的商品类别数据就成功显示了。

更多推荐

Django 前后端分离实战项目 生鲜超市(六)之商品类别数据

本文发布于:2024-02-06 23:48:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751722.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:生鲜   实战   后端   类别   超市

发布评论

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

>www.elefans.com

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