'str' object is not callable
来源:6-2 商品类别数据接口-2

肖庚辰
2018-10-30
老师您好,6-2节,运行http://127.0.0.1:8000/categorys/报错,请问该如何解决?谢谢!
serializers.py代码
from rest_framework import serializers
from goods.models import Goods, GoodsCategory
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = GoodsCategory
fields = "__all__"
# 使用ModelSerializer
class GoodsSerializer(serializers.ModelSerializer):
add_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
category = CategorySerializer()
class Meta:
model = Goods
fields = ["name", "click_num", "shop_price", "goods_front_image", "category", "add_time"]
views.py代码
from rest_framework import pagination
from rest_framework import viewsets
from rest_framework import mixins
from rest_framework import filters
from django_filters.rest_framework import DjangoFilterBackend
from .models import Goods, GoodsCategory
from .serializers import GoodsSerializer, CategorySerializer
from .filters import GoodsFilter
class StandardResultsSetPagination(pagination.PageNumberPagination):
page_size = 2
page_size_query_param = 'page_size'
page_query_param = 'p'
max_page_size = 100
class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
"""商品列表页,分页、搜索、过滤、排序"""
queryset = Goods.objects.all().order_by('id')
serializer_class = GoodsSerializer
pagination_class = StandardResultsSetPagination
filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
filter_class = GoodsFilter
search_fields = ("name", "goods_brief", "goods_desc") # '=name'精确搜索
ordering_fields = ("sold_num", "add_time")
class CategoryViewset(mixins.ListModelMixin, viewsets.GenericViewSet):
"""
list:
商品分类列表数据
"""
queryset = GoodsCategory.objects.all().order_by("id")
serializer_class = CategorySerializer
urls.py代码
from django.conf.urls import url, include
from django.views.static import serve
import xadmin
from rest_framework.documentation import include_docs_urls
from rest_framework import routers
from MxShop36.settings import MEDIA_ROOT
from goods import views
# 生成router对象
router = routers.DefaultRouter()
# 配置goods的url
router.register(r'goods', views.GoodsListViewSet, base_name="goods")
# 配置category的url
router.register(r'categorys', views.CategoryViewset, base_name="categorys")
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^xadmin/', xadmin.site.urls),
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
# 商品列表页
url(r'docs/', include_docs_urls(title="慕学生鲜")),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]
谢谢老师!
写回答
1回答
-
肖庚辰
提问者
2018-10-30
注释掉settings.py文件中的'DEFAULT_FILTER_BACKENDS': {'django_filters.rest_framework.DjangoFilterBackend',}代码就能运行了。
032018-11-03
Python前后端分离开发Vue+Django REST framework实战
Django REST framework课程视频,RESTFul API前后端分离开发
2873 学习 · 2457 问题
相似问题