base: prevent leak of opened fieldfile in export_json (#66533)

This commit is contained in:
Benjamin Dauvergne 2022-09-07 08:10:29 +02:00
parent e905cdb516
commit b32c2f58dc
1 changed files with 6 additions and 5 deletions

View File

@ -370,11 +370,12 @@ class BaseResource(models.Model):
if isinstance(field, BASE_EXPORT_FIELDS):
d[field.name] = value
elif isinstance(field, models.FileField):
if value:
d[field.name] = {
'name': os.path.basename(value.name),
'content': force_str(base64.b64encode(value.read())),
}
if value.name:
with value as fd:
d[field.name] = {
'name': os.path.basename(value.name),
'content': force_str(base64.b64encode(fd.read())),
}
else:
d[field.name] = None
elif isinstance(field, SFTPField):