1

这是我的模型:

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

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

4

1 回答 1

2

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

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

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

于 2019-10-08T15:55:45.287 回答