FileField/ImageField accessor methods throw unnecessary exceptions when they are blank or null.
|Reported by:||kevin.howerton@…||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||1.1|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Description (last modified by Alex)
Many of the accessor methods on the FileField call this method:
def _require_file(self): if not self: raise ValueError("The '%s' attribute has no file associated with it." % self.field.name)
This method defeats the blank or null features, and has 0 benefit.
The preferred behavior should be that it raises an error if the field is set, but the file does not exist. However if you try to retrieve a URL or path from a file-field it should return None if the field is Null or if the field is blank. Not sure what the reasoning behind throwing an error here, is but it seems extremely dis-advantageous in practice requiring every image or file-field that can be blank/null to have if/else statement wrapped around it in templates to prevent 500 errors.
Change History (8)
comment:1 Changed 6 years ago by Alex
- Description modified (diff)
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
comment:2 Changed 6 years ago by russellm
- Triage Stage changed from Unreviewed to Design decision needed
comment:5 Changed 5 years ago by thejaswi_puthraya
- Component changed from Uncategorized to Database layer (models, ORM)
- Easy pickings unset
- UI/UX unset
comment:6 Changed 3 years ago by akaariai
- Triage Stage changed from Design decision needed to Accepted