Как отправить набор запросов бросить супер метод? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь отправить атрибут log в функцию super get и вывести список всех журналов, хотя мне нужен фильтр, который работает на 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')

Как мне этого добиться?

1 Ответ

0 голосов
/ 28 октября 2019

Вероятно, вы не можете сделать это так, как вы упомянули в вопросе. Если вы хотите просмотреть все журналы, почему бы не добавить для этого SerializerMethodField?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...