Django FileField (or ImageField) open() method returns None for valid file?

because open method of models.FileField doesn't return anything

you can just use:

task.seq_file.read()

and you don't need calculate path of file for checking if file exist. you can use task.seq_file.path:

if not os.path.isfile(task.seq_file.path):
    ....

A FileField will give you a file-like object and there is no need to call open() on it. In your example, just call task.seq_file.file.

Why is that? There are many storage backends for FileField, and many of them are not backed by a file in disk (think of S3 storage, for example). I guess that is why the documentation says it returns a file-like object, not a file. For some kinds of storage the "open" method makes no sense.

Tags:

Python

Django