[带有Django和搜索过滤器的Google App Engine的Google Cloud Storage签名URL

问题描述 投票:0回答:1

我有以下具有相关字段的模型和一个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

我需要在“签名的网址”中添加一个动态字段,以便在请求时为特定的授权用户提供访问权限以及实际的Google存储网址。

我该如何实现?

django google-cloud-platform django-rest-framework google-cloud-storage google-app-engine-python
1个回答
0
投票

我认为正确的答案是在下面使用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')
© www.soinside.com 2019 - 2024. All rights reserved.