【发布时间】:2017-04-28 09:37:57
【问题描述】:
我是 python 新手。我想在我的父类中定义一些抽象方法并使用它们。我写了这样的代码
class BaseListAPI(APIView):
__metaclass__ = abc.ABCMeta
def get(self, request):
search_object, start, count =
tools.handlers.read_get_request_data(request.GET)
order_by = request.GET.get('order_by')
return get_successful_response(self.get_query_set.list(
without_user_serializer=self.get_serializer,
search_object=search_object,
start=start,
count=count,
order_by=order_by
))
@abc.abstractmethod
def get_query_set(self):
"""Method that should do something."""
@abc.abstractmethod
def get_serializer(self):
"""this method gets the serializer"""
class TourListListAPI(BaseListAPI):
def get_query_set(self):
return models.Tour.objects
def get_serializer(self):
return without_user.TourSerializer
例如,当我调用self.get_query_set() 时,我希望调用子函数,但它永远不会被调用,而是被调用的抽象父方法会导致错误!我在这里缺少什么?
【问题讨论】:
-
据我所知,您的代码应该可以正常工作,所以问题出在您没有发布的部分。请发布调用代码(触发错误所需的最低要求),完整匹配的回溯,并在您的 sn-p 中添加缺少的导入 - 我假设
APIView来自 django-rest-framework 但那很疯狂猜测。
标签: python django python-2.7 python-3.x