Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_Django Forms_Django Views_Django Urls - Fatal编程技术网

Django:下载上载的文件

Django:下载上载的文件,django,django-forms,django-views,django-urls,Django,Django Forms,Django Views,Django Urls,我在这个问题上有详细的表格 如何下载上传的文件。当我进入表单的编辑视图时,我可以看到上传的文件url,但它不是下载的。 开发和生产模式需要改变什么设置 单击链接时出错: Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/media/Certificate.docx Using the URLconf defined in tiktant.urls, Django tried th

我在这个问题上有详细的表格

如何下载上传的文件。当我进入表单的编辑视图时,我可以看到上传的文件url,但它不是下载的。 开发和生产模式需要改变什么设置

单击链接时出错:

Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:8000/media/Certificate.docx

Using the URLconf defined in tiktant.urls, Django tried these URL patterns, in this order:

    ^ ^$ [name='home']
    ^ ^login/$ [name='login']
    ^ ^logout/$ [name='logout']
    ^ ^logout_then_login/$ [name='logout_then_login']
    ^ ^dashboard/$ [name='dashboard'] 
The current URL, media/Certificate.docx, didn't match any of these.

媒体url未显示在根url.py文件中。您需要在url.py文件中添加以下代码以启用相同的功能

if settings.DEBUG:
    from django.conf.urls.static import static
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)

注意:请不要忘记在settings.py文件中添加媒体根目录和媒体URL。要下载文件,您需要编写更多的代码。

根url.py文件中没有显示媒体url。您需要在url.py文件中添加以下代码以启用相同的功能

if settings.DEBUG:
    from django.conf.urls.static import static
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)

注意:请不要忘记在settings.py文件中添加媒体根目录和媒体URL。要下载文件,您需要编写更多的代码。

请确保在项目中添加以下行 设置.py

import os 
def root(x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',x)
MEDIA_ROOT = root('media')
MEDIA_URL = '/media/'
TEMPLATE_CONTEXT_PROCESSORS = (
    '-----------------------'
    'django.core.context_processors.media',

)
url.py

from django.conf.urls import patterns, include, url
from django.conf import settings

urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),

)
从django.conf.url导入模式,包括,url
从django.conf导入设置
urlpatterns+=模式(“”,url(r'^media/(?P.*)$,'django.views.static.service',{'document_root':settings.media_root,'show_index':True}),
)

确保在项目中添加了以下行 设置.py

import os 
def root(x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',x)
MEDIA_ROOT = root('media')
MEDIA_URL = '/media/'
TEMPLATE_CONTEXT_PROCESSORS = (
    '-----------------------'
    'django.core.context_processors.media',

)
url.py

from django.conf.urls import patterns, include, url
from django.conf import settings

urlpatterns += patterns('',url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),

)
从django.conf.url导入模式,包括,url
从django.conf导入设置
urlpatterns+=模式(“”,url(r'^media/(?P.*)$,'django.views.static.service',{'document_root':settings.media_root,'show_index':True}),
)

这正在工作。当我启动它的时候,我需要做任何改变吗?我的意思是同样的事情也适用于生产模式?我可以下载文件。我可以标记它已解决,但第二个问题待定。生产方式会有变化吗?如果debug=False?@PulkitSharma,您必须运行python manage.py collectstatic,才能在生产环境中加载所有css、js和媒体文件。这是可行的。当我启动它的时候,我需要做任何改变吗?我的意思是同样的事情也适用于生产模式?我可以下载文件。我可以标记它已解决,但第二个问题待定。生产方式会有变化吗?使用debug=False?@PulkitSharma,您必须运行python manage.py collectstatic,以便在生产环境中加载所有css、js和媒体文件。