私はまだDjangoとURLの周りに頭を抱えています。私の混乱は今私が非常に単純な作業であるべきであると感じることを私にさせません。Djangoはユーザーがアップロードしたコンテンツを表示します
ファイルのアップロードに成功しました。
私のsettings.pyファイルには、アップロードされたファイルを格納する場所と、Djangoがそれらを提供するために使用するURLの仕様が追加されています。
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL= '/media/'
また、DjangoがMEDIA_URLからファイルを提供できるように、urls.pyに必要な行を追加しました。
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では、アップロードされたファイルを表示するために使用できるハイパーリンクをWebページに表示します。ハイパーリンクをクリックすると、アップロードされたファイルの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を正しくアドレス指定する方法を理解できません。 – led4966
いいえ、あなたが何を言っているのか分かりません。 –
申し訳ありませんそれは私の問題とは関係ないからです。あなたが私に提供した新しいコードは私にエラーを投げかけていませんが、実際のハイパーリンクをクリックすると私はファイルに転送されません。それが正しく機能するためには、何を追加する必要がありますか? – led4966