Django FileField在数据库中保存url而不是路径

Django FileField在数据库中保存url而不是路径,django,Django,我的表单上有一个文件字段。 我喜欢它的行为方式,将文件写入MEDIA\u ROOT等等。 我想更改它写入数据库的内容。 如果我查看数据库,我会看到路径/home/user/media/path/to/file.txt我希望它写的是不带域的URL路径/media/file.txt 是否有参数要传递到ModelForm或Model中? 如果不是,我应该覆盖哪个类 将绝对路径写入数据库似乎是错误的做法。我需要能够动态更改媒体根和媒体URL。并可能与其他只需要媒体URL的非django应用程序共享此数

我的表单上有一个文件字段。
我喜欢它的行为方式,将文件写入MEDIA\u ROOT等等。 我想更改它写入数据库的内容。
如果我查看数据库,我会看到路径
/home/user/media/path/to/file.txt
我希望它写的是不带域的URL路径
/media/file.txt

是否有参数要传递到ModelForm或Model中?
如果不是,我应该覆盖哪个类


将绝对路径写入数据库似乎是错误的做法。我需要能够动态更改媒体根和媒体URL。并可能与其他只需要媒体URL的非django应用程序共享此数据库。

我看不到在数据库中保存URL的方法,但您可以在数据库中保存相对路径。我想您已经将
upload\u设置为一个绝对路径。您可以将其更改为相对于您的
媒体根目录的路径,例如'upload\u to=“path/to/”。关于这一点,另请参见。

我理解这种方法,但我希望记录为“/media/path/to/file.txt”,并将其上传到class='path/to/”。@sk1p的答案似乎是更好的选择,否则您在db中的“绝对性”也会有同样的问题,只是它是一个绝对url而不是绝对路径。。。换言之,如果您有理由更改
MEDIA\u URL
,那么您的数据将被破坏,但按照sk1p的方式执行,任何更改都将由
MEDIA\u ROOT
MEDIA\u URL
设置处理