django - 使用带有搜索过滤器的 Django 和 Google App Engine 的 Google Cloud Storage 签名 URL
问题描述
我有以下带有相关字段的模型和一个所有模型字段都正确返回的 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
我需要添加一个动态字段“签名的 url”,以便在请求时为特定授权用户提供访问权限以及实际的谷歌存储 url。
我怎样才能做到这一点?
解决方案
我认为正确的答案是下面使用 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')
推荐阅读
- python - Pygame + python:1 部分代码有 pygame.wait 而其余代码运行
- mysql - 动态插入/更新使用来自另一个表的数据的列
- javascript - D3.js Hierarchical Edge Bundling,如何更改文本组的颜色?
- r - 如何根据其他值计算该值?
- ansible - 我正在努力使用 with_dict 模块
- html - 如何调整矩形图像以在类似 instagram 的图像网格中显示为正方形,而不会失去页面响应能力
- node.js - 从 docker 容器和节点使用 websocket 的问题
- oracle - 选择查询的自定义异常处理
- php - Laravel 登录页面重定向到验证页面
- html - 当显示一个包含一个单元格的简单表格时,表格显示的大小大约是它应该显示的大小的两倍