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!
By default, Django stores files locally, using the MEDIA_ROOT and MEDIA_URL settings. The examples below assume that you're using these defaults. However, Django provides ways to write custom file storage systems that allow you to completely customize where and how Django stores files.
I would keep the FileField and use python os.path.basename to extract the filename.
This can be encapsulated with a property
class MyModel(models.Model):
file = models.FileField(...)
@property
def filename(self):
return os.path.basename(self.file.name)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With