Search code examples
pythondjangofilefield

Django models.FileField - store only the file name not any paths or folder references


I'm using Django's Admin site to manage some data - but not building a webapp. I need the file upload field to store only the file name in the database.

Right now I can get absolute paths like: /Users/me/uploads/file.png

Or using the upload_to parameter get something like this in the database: uploads/file.png

How can I get it to be this: file.png

EDIT:

I'm taking the sqlite database and using in another client - so having any paths in the db entry doesn't make sense in my case.

Thanks!


Solution

  • The upload_to arg of the FileField can be a callable. see the docs

    If you really need to only store the file name, I think you can do something like this. I did'nt try myself but I think it works.

    def only_filename(instance, filename):
        return filename
    
    class MyModel(models.Model):
        file = models.FileField(upload_to=only_filename)