如何在 Django REST framework mixin 中引用 child class?
How to refer to child class in Django REST framework mixin?
在 Django Rest Framework 中,我正在尝试为视图集中的以下两种方法编写混合:
class OrderViewSet(viewsets.ModelViewSet):
# ...
def get_object(self):
pk = self.kwargs.get('pk')
if pk == 'me':
user = self.request.user
return get_object_or_404(Order, user=user.pk)
return super(OrderViewSet, self).get_object()
def get_queryset(self):
user = self.request.user
return Agent.objects.filter(user=user)
除了 super(OrderViewSet, self)
之外,这看起来很简单,因为在声明它们之前,我需要以某种方式在我的 mixin class 中引用不同的视图集 class。有什么建议吗?
使用新式 super() 调用
return super().get_object()
在 Django Rest Framework 中,我正在尝试为视图集中的以下两种方法编写混合:
class OrderViewSet(viewsets.ModelViewSet):
# ...
def get_object(self):
pk = self.kwargs.get('pk')
if pk == 'me':
user = self.request.user
return get_object_or_404(Order, user=user.pk)
return super(OrderViewSet, self).get_object()
def get_queryset(self):
user = self.request.user
return Agent.objects.filter(user=user)
除了 super(OrderViewSet, self)
之外,这看起来很简单,因为在声明它们之前,我需要以某种方式在我的 mixin class 中引用不同的视图集 class。有什么建议吗?
使用新式 super() 调用
return super().get_object()