python - 将二进制数据添加到 django rest 框架 API
问题描述
模型.py
class TblSnapshot(models.Model):
url = models.CharField(max_length=500)
snapshot = models.BinaryField()
我想在 API 中添加二进制数据,但它会产生错误
TypeError at /api
__str__ returned non-string (type memoryview)
解决方案
您需要实现一个自定义字段(根据此处)。这就是您的序列化程序查找此类模型的方式
class BinaryField(serializers.Field):
def to_representation(self, value):
return value.decode('utf-8')
def to_internal_value(self, value):
return value.encode('utf-8')
class TblSnapshotSerializer(serializers.ModelSerializer):
class Meta:
model = TblSnapshot
fields = ('id', 'url', 'snapshot')
snapshot = BinaryField()
推荐阅读
- admin - 在启动时以管理员身份运行 AHK 脚本
- xml - 从逻辑应用检索 XML 数据的问题
- twilio - Twilio 出站呼叫 - 将更多人添加到现有呼叫
- r - 使用 purrr/tidyverse 在 R 中迭代地应用基于 store-product 的时间序列模型
- r - 在 R 中使用 `mutate_at` 或 `map` 函数计算多个位置之间的距离
- android - Android:LiveData observeForEver 产生崩溃,因为视图为空
- html - 如何通过以角度订阅圆环图从服务中分配动态数据?
- python - 为什么 Python 的 UUID 构造函数会产生与 C# Guid 构造函数不同的结果?
- teradata - 如何在 Teradata sql 中最后一个下划线之后选择字符串
- c++ - 从中心元素开始以螺旋方式遍历矩阵时出错