2016-05-11 3 views
0

Мне еще предстоит обернуть голову вокруг django и URL-адресов, и мое замешательство теперь мешает мне делать то, что я чувствую, должно быть очень простой задачей.Django display user uploaded content

Я успешно реализовал загрузку файлов.

В моем файле settings.py я добавил спецификации для хранения загруженных файлов и URL-адрес, который должен использовать Django для их обслуживания.

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/') 

У меня возникли проблемы выяснить, что для использования в визуализации (запрос) на мой взгляд, и как правильно кодировать это в HTML. Когда я пытаюсь использовать «media», я получаю сообщение об ошибке, что его нельзя сопоставить.

Вот отрывок из HTML Я пытаюсь:

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

Я также путают, как настроить мой визуализации (запрос), так что он знает, что для доступа к медиа /, а затем перейти к правильные документы/Y/M/D в зависимости от первичного ключа.

ответ

2

Вы не хотите использовать здесь тег url. URL вашего медиа хранится в вашей модели и не имеет ничего общего с логикой разрешения пути Django. Просто ссылки на url метод поля:

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

См the docs.

(Заметим также, что обслуживают файлы через ваш urls.py, как это работает только разработчик, для прода вам необходимо настроить веб-сервер, чтобы сделать это.)

+0

спасибо! Любые советы по форматированию запроса рендеринга (запроса, шаблона, контекста)? Я предполагаю, что мне не нужен шаблон, так как я просто хочу отобразить загруженный файл, но я не могу понять, как правильно адресовать URL-адрес файла. – led4966

+0

Нет, потому что я не понимаю, о чем вы говорите. –

+0

Извините! Это потому, что это не имеет ничего общего с моей проблемой. Новый код, который вы мне предоставили, не вызывает у меня никаких ошибок, но когда я нажимаю на фактическую гиперссылку, это не передает мне файл. Что мне нужно добавить, чтобы сделать эту работу правильно? – led4966

 Смежные вопросы

  • Нет связанных вопросов^_^