Django显示用户上传内容

2024-04-26 19:16:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我还没有完全了解django和url,现在我的困惑使我无法做我觉得应该是一项非常简单的任务。你知道吗

我已经成功实现了文件上传。你知道吗

在我的设置.py文件中,我添加了存储上传文件的规范以及Django应该使用的URL来提供这些文件。你知道吗

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL= '/media/'

我还添加了必要的行网址.py允许Django从媒体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)

在app report\u app中,我希望网页显示可用于查看上载文件的超链接。当我点击超链接时,我希望它请求上传文件的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。你知道吗


Tags: 文件djangofromimportappurlsearchinclude
1条回答
网友
1楼 · 发布于 2024-04-26 19:16:04

你根本不想在这里使用url标签。媒体的URL存储在模型中,与Django的路径解析逻辑无关。只需引用字段的url方法:

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

the docs。你知道吗

(另请注意,通过网址.py这样只适用于dev;对于prod,您需要配置您的web服务器来完成这项工作。)

相关问题 更多 >