Как мне принять входные данные как String и сохранить как двоичные в Django, используя Django REST Framework? - PullRequest
1 голос
/ 08 октября 2019

Вот моя модель:

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']

Прежде всего, в API Browsable я вижу file и text полей, но не binary полей. Как мне увидеть это поле?

Во-вторых, тип входных данных для поля binary - string, и я хотел бы сохранить его как binary данные в базе данных. Как мне заставить его работать?

1 Ответ

1 голос
/ 08 октября 2019

Чтобы преобразовать str в байтовую строку, закодируйте его:

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

Возможно, вы не видите BinaryField в пользовательском интерфейсе, поскольку у него нет виджета по умолчанию. В более старых версиях Django BinaryFields даже не редактировались, поскольку они обычно используются для хранения необработанных данных, включая символы, не включенные в ASCII.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...