我正在使用 Django 的管理站点来管理一些数据——但没有构建 webapp。我需要文件上传字段来仅将文件名存储在数据库中。
现在我可以获得绝对路径,例如:/Users/me/uploads/file.png
或者使用upload_to 参数在数据库中获取类似这样的内容:uploads/file.png
我怎样才能让它变成这样:file.png
编辑:
我正在使用 sqlite 数据库并在另一个客户端中使用 - 因此在 db 条目中包含任何路径在我的情况下没有意义。
谢谢!
我会保留 FileField 并使用 python os.path.basename来提取文件名。
这可以用一个属性封装
class MyModel(models.Model):
file = models.FileField(...)
@property
def filename(self):
return os.path.basename(self.file.name)
的upload_to
argFileField
可以是可调用的。查看文档
如果你真的只需要存储文件名,我认为你可以这样做。我没有尝试自己,但我认为它有效。
def only_filename(instance, filename):
return filename
class MyModel(models.Model):
file = models.FileField(upload_to=only_filename)