Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何获取文件字段中文件的链接?_Django_Filefield - Fatal编程技术网

Django 如何获取文件字段中文件的链接?

Django 如何获取文件字段中文件的链接?,django,filefield,Django,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:///media/files/refer

如何获取
文件字段的链接?我尝试了
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:///media/files/reference/1342188147.zip

我怎么能得到这个?我必须手动生成字符串吗

编辑

我的媒体URL未设置,但仍无法使其正常工作:

设置.py

models.py

壳内

然后我得到一个路径:

"/some/path/to/file.txt"
对于
a.url

"http://xxx.com/media/some/path/to/file.txt"

以编程方式完成时,
a.file=“/some/path/to/file.txt”
,文件不会上载到
MEDIA\u ROOT
。如何将文件上传到
upload\u to
定义的目录中,即在我的情况下
/home/xxx/media/file.txt

输出基于您的设置文件,请查看此处了解如何在开发和/或生产中提供静态文件:


我猜您将字段定义为:

picture = models.ImageField(upload_to="/home/xxx/media/files/reference")
换句话说,是否可能为字段的upload_path属性定义了绝对路径

试试像这样的东西

from django.conf import settings
picture = models.ImageField(upload_to=settings.MEDIA_ROOT + "files/reference")
"http://xxx.com/media/some/path/to/file.txt"
picture = models.ImageField(upload_to="/home/xxx/media/files/reference")
from django.conf import settings
picture = models.ImageField(upload_to=settings.MEDIA_ROOT + "files/reference")