Python Django显示用户上传的内容

Python Django显示用户上传的内容,python,django,upload,render,django-urls,Python,Django,Upload,Render,Django Urls,我还没有完全了解django和URL,我的困惑现在阻止了我做我认为应该是一项非常简单的任务 我已经成功地实现了文件上传 在我的settings.py文件中,我添加了存储上传文件的规范以及Django应该使用的URL MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL= '/media/' 我还向URL.py添加了必要的行,以允许Django从MEDIA_URL提供文件 from django.conf.urls import url,

我还没有完全了解django和URL,我的困惑现在阻止了我做我认为应该是一项非常简单的任务

我已经成功地实现了文件上传

在我的settings.py文件中,我添加了存储上传文件的规范以及Django应该使用的URL

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL= '/media/'
我还向URL.py添加了必要的行,以允许Django从MEDIA_URL提供文件

from django.conf.urls import url, include
from django.contrib import admin
from login_app import views as login_app_views
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    url(r'^admin/',     admin.site.urls),
    url(r'^login/',     login_app_views.login_user),

    # creating registered namespaces for each app
    url(r'^login/',     include('login_app.urls',       namespace = "login_app")),
    url(r'^CMIRS/',     include('dashboard_app.urls',   namespace = "dashboard_app")),
    url(r'^CMIRS/',     include('submit_app.urls',      namespace = "submit_app")),
    url(r'^CMIRS/',     include('filter_app.urls',      namespace = "filter_app")),
    url(r'^CMIRS/case/',include('report_app.urls',      namespace = "report_app")), 
    url(r'^CMIRS/',     include('search_app.urls',      namespace = "search_app")), 
    url(r'^search/',    include('haystack.urls')), ##used in navbar-search

 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在应用程序报告应用程序中,我希望网页显示可用于查看上载文件的超链接。当我点击超链接时,我希望它请求上传文件的URL

在我的型号中,上传看起来像这样:

upload1 = models.FileField(upload_to = 'documents/%Y/%m/%d/')
我很难弄清楚在视图中的呈现(请求)中使用什么,以及如何正确地用HTML编码。当我尝试使用“媒体”时,我得到一个错误,说它无法匹配

下面是我正在尝试的HTML的一个片段:

<dt>Upload</dt><dd><tr><td><a href="{% url 'media' case.pk %}">{{ case.upload1 }}</a></td></tr></dd>
上传

我还不知道如何设置渲染(请求),以便它知道如何访问媒体/,然后根据主键转到正确的文档/Y/M/D

您根本不想在此处使用url标记。媒体的URL存储在模型中,与Django的路径解析逻辑无关。只需参考该字段的
url
方法:

<a href="{{ case.upload1.url }}">


(还请注意,像这样通过url.py提供文件只在dev中有效;对于prod,您需要配置您的Web服务器来完成此操作。)

您根本不想在此处使用url标记。媒体的URL存储在模型中,与Django的路径解析逻辑无关。只需参考该字段的
url
方法:

<a href="{{ case.upload1.url }}">


(还请注意,像这样通过URL.py提供文件只在dev中有效;对于prod,您需要配置您的Web服务器来实现这一点。)

谢谢!有关于如何格式化呈现(请求、模板、上下文)请求的建议吗?我假设我不需要模板,因为我只想显示上传的文件,但我不知道如何正确寻址文件的url。不,因为我不明白你在说什么渲染。对不起!那是因为那与我的问题无关。您提供给我的新代码没有给我任何错误,但当我单击实际的超链接时,它不会将我传输到该文件。我需要添加什么才能使其正确工作?它将带您去哪里?你看到了什么错误?(注意,我刚刚注意到我的手机自动更正了代码;它应该是小写的,现在就可以编辑了——这可能会解决你看到的任何问题。)这就解决了它!以前,它只是停留在同一页上(没有错误,没有重定向)。谢谢!有关于如何格式化呈现(请求、模板、上下文)请求的建议吗?我假设我不需要模板,因为我只想显示上传的文件,但我不知道如何正确寻址文件的url。不,因为我不明白你在说什么渲染。对不起!那是因为那与我的问题无关。您提供给我的新代码没有给我任何错误,但当我单击实际的超链接时,它不会将我传输到该文件。我需要添加什么才能使其正确工作?它将带您去哪里?你看到了什么错误?(注意,我刚刚注意到我的手机自动更正了代码;它应该是小写的,现在就可以编辑了——这可能会解决你看到的任何问题。)这就解决了它!以前,它只是停留在同一个页面上(没有错误,没有重定向)。