#9446 closed (fixed)
Apparent discrepancy between online documentation and how the code works for custom File Storage system
Reported by: | xhad | Owned by: | Jacob |
---|---|---|---|
Component: | Documentation | Version: | dev |
Severity: | Keywords: | file storage, documentation | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The online documentation for writing custom File Storage systems says that the _save
method must be overridden and "No return value is expected." (http://docs.djangoproject.com/en/dev/howto/custom-file-storage/#save-name-content).
However, the inherited save
method in django/core/files/storage.py
contains these lines (45-48):
name = self._save(name, content) # Store filenames with forward slashes, even on Windows return force_unicode(name.replace('\\', '/'))
The obvious problem is that returning nothing from the _save
method causes the last line to throw an error like this:
AttributeError: 'NoneType' object has no attribute 'replace'
From what I can tell, the documentation should state that the _save
method should be implemented so that it returns the name of the file that was written to in the end. This seems to be consistent with how the code is really implemented and how the FileSystemStorage
class is implemented in the same file.
Change History (5)
comment:1 by , 16 years ago
milestone: | post-1.0 |
---|
comment:2 by , 16 years ago
milestone: | → 1.1 |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:3 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [10371]) Fixed a whole bunch of small docs typos, errors, and ommissions.
Fixes #8358, #8396, #8724, #9043, #9128, #9247, #9267, #9267, #9375, #9409, #9414, #9416, #9446, #9454, #9464, #9503, #9518, #9533, #9657, #9658, #9683, #9733, #9771, #9835, #9836, #9837, #9897, #9906, #9912, #9945, #9986, #9992, #10055, #10084, #10091, #10145, #10245, #10257, #10309, #10358, #10359, #10424, #10426, #10508, #10531, #10551, #10635, #10637, #10656, #10658, #10690, #10699, #19528.
Thanks to all the respective authors of those tickets.
Milestone post-1.0 deleted