Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
Python 如何从django管理员下载文件_Python_Django - Fatal编程技术网

Python 如何从django管理员下载文件

Python 如何从django管理员下载文件,python,django,Python,Django,我在models.py的类部件中创建了FileField。我还通过方法file_link(self)获取此文件的链接: 因此,在我的django管理员中,我有一个FileField,它允许将文件上传到origin_文件目录并链接到这个文件。但当我点击这个链接时,我将重定向到我网站的主页。例如,我下载了文件presentation.pptx。当我得到这个文件的url时,我得到 如何下载此文件?您必须在django设置中配置媒体URL Django通过以下方式构建您的url: settings.

我在models.py的类部件中创建了FileField。我还通过方法file_link(self)获取此文件的链接:

因此,在我的django管理员中,我有一个FileField,它允许将文件上传到origin_文件目录并链接到这个文件。但当我点击这个链接时,我将重定向到我网站的主页。例如,我下载了文件presentation.pptx。当我得到这个文件的url时,我得到


如何下载此文件?

您必须在django设置中配置
媒体URL

Django通过以下方式构建您的url:

settings.MEDIA\u URL+“源文件/Presentation.pptx”

媒体URL默认为空字符串,因此您会得到URL“origin\u files/Presentation.pptx”,浏览器会将其连接到当前页面,因为URL不是以斜杠开头的

因此,您必须将媒体URL设置为“/MEDIA/”

然后一切都将在您的开发环境中工作


在远程服务器上,这还需要适当地配置web服务器,使其为您的媒体根目录到媒体URL提供服务(显然超出了本问题的范围)。

这里有一些奇怪的事情。那块石头的意义是什么?这段代码永远无法提升PageNotAnInteger.hmm,在my settings.py中没有媒体_URL@SBrain,我明白了-我相应地更新了答案(您必须对其进行配置),简言之:您只需将其设置为“/media/”即可使其正常工作。但是要下载这个文件,我必须添加到URL.py urlpatterns+=static(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)@SBrain,你说得对,谢谢,但我建议在“if settings.DEBUG:”子句中进行,并在生产中使用你的web服务器来提供这些文件(正如Django docs推荐的那样)
origin = models.FileField(upload_to='origin_files', null=True, blank=True)

    def file_link(self):
        try:
                return "<a href='%s'>download</a>" % (self.origin.url,)
        except PageNotAnInteger:
            return "<a href=127.0.0.1:8000/main>download</a>"

    file_link.allow_tags = True
readonly_fields = ('file_link',)

fieldsets = (
    ('Характеристики плёнки', {
        'fields': (....'data', 'origin', 'file_link')
    }),

)