如何使用 Django REST Framework 在 Django 中将输入作为字符串保存为二进制文件?
How do I take input as String and save as Binary in Django using Django REST Framework?
这是我的模型:
class Example(models.Model):
file = S3PrivateFileField()
text = models.TextField(null=True, blank=True)
binary = models.BinaryField(null=True, blank=True)
这是序列化程序:
class ExampleSerializer(ModelSerializer):
class Meta:
model = Example
fields = ['file', 'text', 'binary']
首先,在 Browsable API 中,我可以看到 file
和 text
字段,但看不到 binary
字段。我如何查看该字段?
其次,binary
字段的输入数据类型是string
,我想将其保存为数据库中的binary
数据。我怎样才能让它工作?
要将 str
转换为字节字符串,请对其进行编码:
>>> s = 'hello'
>>> b = s.encode() # default is UTF-8 encoding
>>> b
b'hello'
您可能在 UI 中看不到 BinaryField,因为它没有默认小部件。在旧版本的 Django 中,BinaryFields 甚至不可编辑,因为它们通常用于存储原始数据,包括 ASCII 中不包含的字符。
这是我的模型:
class Example(models.Model):
file = S3PrivateFileField()
text = models.TextField(null=True, blank=True)
binary = models.BinaryField(null=True, blank=True)
这是序列化程序:
class ExampleSerializer(ModelSerializer):
class Meta:
model = Example
fields = ['file', 'text', 'binary']
首先,在 Browsable API 中,我可以看到 file
和 text
字段,但看不到 binary
字段。我如何查看该字段?
其次,binary
字段的输入数据类型是string
,我想将其保存为数据库中的binary
数据。我怎样才能让它工作?
要将 str
转换为字节字符串,请对其进行编码:
>>> s = 'hello'
>>> b = s.encode() # default is UTF-8 encoding
>>> b
b'hello'
您可能在 UI 中看不到 BinaryField,因为它没有默认小部件。在旧版本的 Django 中,BinaryFields 甚至不可编辑,因为它们通常用于存储原始数据,包括 ASCII 中不包含的字符。