簡體   English   中英

Django顯示用戶上傳的內容

[英]Django display user uploaded content

我還沒有對Django和URL有所了解,現在的困惑使我無法做自己想做的事情,這是非常簡單的任務。

我已經成功實現了文件上傳。

在我的settings.py文件中,我添加了關於上傳文件存儲位置的規范,以及Django應該用於提供這些文件的URL。

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

我還向urls.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)

我希望在應用程序report_app中,網頁顯示可用於查看上傳文件的超鏈接。 當我單擊超鏈接時,我希望它請求上傳文件的URL。

在我的模型中,上傳看起來像這樣:

upload1 = models.FileField(upload_to = 'documents/%Y/%m/%d/')

我在弄清楚在視圖中要在render(request)中使用什么以及如何正確地用HTML編寫代碼時遇到了麻煩。 當我嘗試使用“媒體”時,出現錯誤消息說無法匹配。

這是我正在嘗試的HTML的片段:

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

我也很困惑如何設置我的render(request),以便它知道要訪問media /,然后根據主鍵轉到正確的document / Y / M / D。

您根本不想在這里使用url標記。 媒體的URL存儲在模型中,與Django的路徑解析邏輯無關。 只需引用該字段的url方法:

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

請參閱文檔

(另請注意,像這樣通過urls.py提供文件僅在開發人員中起作用;對於產品,您需要配置Web服務器來執行此操作。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM