> path = default_storage.save('path/to/file', ContentFile(b'new content'))
Things would be bit easier, if `save()` would support strings/bytes
directly.
This way a developer needs to type and import less code:
```
path = default_storage.save('path/to/file', b'new content')
```
```
path = default_storage.save('path/to/file', 'new unicode string, encoded
automatically with utf-8')
```
Would you accept a patch to `Storage.save()`?
--
Ticket URL: <https://code.djangoproject.com/ticket/32452>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old description:
> Docs: https://docs.djangoproject.com/en/3.1/topics/files/#storage-objects
>
> > path = default_storage.save('path/to/file', ContentFile(b'new
> content'))
>
> Things would be bit easier, if `save()` would support strings/bytes
> directly.
>
> This way a developer needs to type and import less code:
>
> ```
> path = default_storage.save('path/to/file', b'new content')
> ```
>
> ```
> path = default_storage.save('path/to/file', 'new unicode string, encoded
> automatically with utf-8')
> ```
>
> Would you accept a patch to `Storage.save()`?
New description:
Docs: https://docs.djangoproject.com/en/3.1/topics/files/#storage-objects
> path = default_storage.save('path/to/file', ContentFile(b'new content'))
Things would be bit easier, if `save()` would support strings/bytes
directly.
This way a developer needs to type and import less code:
{{{
path = default_storage.save('path/to/file', b'new content')
}}}
{{{
path = default_storage.save('path/to/file', 'new unicode string, encoded
automatically with utf-8')
}}}
Would you accept a patch to `Storage.save()`?
--
--
Ticket URL: <https://code.djangoproject.com/ticket/32452#comment:1>
Old description:
> Docs: https://docs.djangoproject.com/en/3.1/topics/files/#storage-objects
>
> > path = default_storage.save('path/to/file', ContentFile(b'new
> content'))
>
> Things would be bit easier, if `save()` would support strings/bytes
> directly.
>
> This way a developer needs to type and import less code:
>
> {{{
> path = default_storage.save('path/to/file', b'new content')
> }}}
>
> {{{
> path = default_storage.save('path/to/file', 'new unicode string, encoded
> automatically with utf-8')
> }}}
>
> Would you accept a patch to `Storage.save()`?
New description:
Docs: https://docs.djangoproject.com/en/3.1/topics/files/#storage-objects
> path = default_storage.save('path/to/file', ContentFile(b'new content'))
Things would be bit easier, if `save()` would support strings/bytes
directly.
This way a developer needs to type and import less code:
{{{
path = default_storage.save('path/to/file', b'new content')
}}}
{{{
path = default_storage.save('path/to/file', 'new unicode string, encoded
automatically with utf-8')
}}}
Would you accept a patch to `Storage.save()`?
Background: I am writing a unittest which mocked away the storage calls to
save() will put the data into the mock.
Then I check if the data is the way I want it.
Now it gets complicated again: I need to access the data which is inside
`ContentFile` grrr.
This would be much easier if you could add strings/bytes to the `save()`
directly.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/32452#comment:2>
* status: new => closed
* resolution: => wontfix
Comment:
> Things would be bit easier, if save() would support strings/bytes
directly.
IMO it would be confusing. `Storage.save()` save content to the file, so
it supports files and any file-like objects, e.g. `StringIO` or `BytesIO`.
Making mocking easier is not a sufficient argument for me, it's also not
clear why this is much harder with the current API.
You can start a discussion on DevelopersMailingList if you don't agree.
--
Ticket URL: <https://code.djangoproject.com/ticket/32452#comment:3>