如何使用 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 中,我可以看到 filetext 字段,但看不到 binary 字段。我如何查看该字段?

其次,binary字段的输入数据类型是string,我想将其保存为数据库中的binary数据。我怎样才能让它工作?

要将 str 转换为字节字符串,请对其进行编码:

>>> s = 'hello'
>>> b = s.encode()  # default is UTF-8 encoding
>>> b
b'hello'

您可能在 UI 中看不到 BinaryField,因为它没有默认小部件。在旧版本的 Django 中,BinaryFields 甚至不可编辑,因为它们通常用于存储原始数据,包括 ASCII 中不包含的字符。