Google Cloud Storage Подписанный URL с Google App Engine, используя Django с поисковыми фильтрами - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующая модель с соответствующими полями и API-интерфейс со всеми полями модели, которые возвращаются правильно.

class VideoEntityFilterSerializer(serializers.ModelSerializer):
    class Meta:
        model = Entity
        fields = ('uuid', 'description', 'url', 'segment_start', 'segment_end', 'confidence', 'username', 'userid', 'videouuid', 'videotitle')

class VideoEntityList(generics.ListAPIView):
    model = Entity
    serializer_class = VideoEntityFilterSerializer
    queryset = Entity.objects.all()
    filter_backends = [filters.SearchFilter]
    search_fields = ['videouuid', ]
    pagination_class = StandardResultsSetPagination

Мне нужно добавить поле Dynami c «подписанный URL» для предоставления доступа для конкретный авторизованный пользователь вместе с реальным URL-адресом хранилища Google на момент запроса.

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

1 Ответ

0 голосов
/ 25 марта 2020

Я думаю, что правильный ответ ниже с использованием SerializerMethodField:

class VideoEntityFilterSerializer(serializers.ModelSerializer):
  signed_url = serializers.SerializerMethodField('get_signed_url')

  def get_signed_url(self, foo):
      return foo.name == "bar" 

  class Meta:
    model = Entity
    fields = ('uuid', 'description', 'url', 'segment_start', 'segment_end', 'confidence', 'username', 'userid', 'videouuid', 'videotitle', 'signed_url')
...