'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',}代码就能运行了。

0
3
bobby
回复
肖庚辰
你加我qq 442421039 我看看
2018-11-03
共3条回复

Python前后端分离开发Vue+Django REST framework实战

Django REST framework课程视频,RESTFul API前后端分离开发

2873 学习 · 2457 问题

查看课程