Python 如何发送查询集抛出超级方法?
我尝试将log属性发送到super-get函数并列出所有日志,尽管我需要在Python 如何发送查询集抛出超级方法?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我尝试将log属性发送到super-get函数并列出所有日志,尽管我需要在BasicQUserSerializer上运行的过滤器 这是我的视图集: class CustomerLogView(generics.ListAPIView): permission_classes = (AllowAny,) queryset = QUser.objects.all() serializer_class = BasicQUserSerializer filter_backends = [Ordering
BasicQUserSerializer
上运行的过滤器
这是我的视图集:
class CustomerLogView(generics.ListAPIView):
permission_classes = (AllowAny,)
queryset = QUser.objects.all()
serializer_class = BasicQUserSerializer
filter_backends = [OrderingFilter]
pagination_class = AdvancedPagination
def get(self, request, *args, **kwargs):
account = get_object_or_404(Account, pk=kwargs['pk'])
log =CustomerLogSerializer(LogEntry.objects.filter(account=account), many=True).data
return super().get(request, *args, **kwargs,)
序列化程序:
class CustomerLogSerializer(serializers.ModelSerializer):
actor = BasicQUserSerializer()
class Meta:
model = LogEntry
fields = ('id', 'actor', 'account', 'changes', 'remote_addr', 'additional_data','timestamp')
我怎样才能做到这一点呢?也许你不能按照你在问题中提到的方式做到这一点。如果您想查看所有日志,为什么不为此添加一个
class CustomerLogSerializer(serializers.ModelSerializer):
actor = BasicQUserSerializer()
logs = serializers.SerializerMethodField()
class Meta:
model = LogEntry
fields = ('id', 'actor', 'account', 'changes', 'remote_addr', 'additional_data','timestamp')
def get_logs(self, obj):
return CustomerLogSerializer(LogEntry.objects.filter(account=obj.account), many=True).data
你的问题不清楚。你想用这个日志变量做什么?我想把它作为一个参数发送给super get方法来列出日志,目前我正在列出BasicQUserSerializer,但我想列出日志,而不是“将它作为一个参数发送给super get方法”这一点我不明白。你希望这种方法对它有什么作用?如果您想列出日志,为什么首先要将serializer类设置为BasicQUserSerializer而不是CustomerLogSerializer?BasicQUserSerializer位于CustomerLogSerializer内部,我想根据用户进行订购,但我想列出日志,这就是为什么我要将serializer类设置为BasicQUserSerializer