我怎样才能得到a的链接FileField
?我尝试了该url
字段,但它给出了文件路径:
In [7]: myobject.myfilefield.path
Out[7]: u'/home/xxxx/media/files/reference/1342188147.zip'
In [8]: myobject.myfilefield.url
Out[8]: u'/home/xxxx/media/files/reference/1342188147.zip'
我期待得到http://<mydomain>/media/files/reference/1342188147.zip
我怎么能得到那个?我必须手动构建字符串吗?
编辑
我的 MEDIA_URL 没有设置,但我仍然无法让它工作:
设置.py
MEDIA_ROOT = '/home/xxx/media/'
MEDIA_URL = 'http://xxx.com/media/'
模型.py
class Archive(models.Model):
#...
file = models.FileField(upload_to="files")
在壳里
a = Archive()
a.file = "/some/path/to/file.txt"
a.save()
然后我得到a.path
:
"/some/path/to/file.txt"
和a.url
:
"http://xxx.com/media/some/path/to/file.txt"
以编程方式完成后a.file = "/some/path/to/file.txt"
,文件不会上传到MEDIA_ROOT
. 如何在我定义的目录中上传文件upload_to
,即在我的情况下/home/xxx/media/file.txt
?