0

私はDjangoを始めたばかりなので、おそらく簡単な質問です。

私は有名な Django チュートリアルに従いましたが、プロジェクトからのビューの分離はかなり明白です:

urlpatterns = patterns('',
    url(r'^testpath/', include('test_app.urls')),
)

test_app の URL は「path/」にマップされます

さて、ビューでは、パスのハードコーディングを避けたいと思います(チュートリアルの例):

def index(request):
   latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
   context = {'latest_poll_list': latest_poll_list}
   return render(request, 'polls/index.html', context)

polls/、アプリへのハードコードされたパスです。コードを変更せずにアプリケーションを別のアプリケーションで使用できるようにする方法が必要だと思います。

編集:

プロジェクト テンプレート ディレクトリ:

/templates
  index.html
  /polls
    index.html

/templates/polls/index.htmlビューにハードコーディングせずにテンプレートを取得したいと思いpollsます。したがって、次のプロジェクトでは、たとえば次のようなものを使用できます。

/templates
  index.html
  /random_polls
    index.html

(私は知ってapp_directories.Loaderいますが、それはアプリ内でテンプレートを使用することを意味し、私の考えでは理想的ではありません)

4

1 に答える 1

0

Django は、テンプレートの完全なパスを見つけようとします。したがって'polls/index.html'、または単に指定すること'index.html'は同じです。テンプレートが、指定されたパスのテンプレート ディレクトリで適切に利用可能であることを確認する必要があります。

設定でテンプレートディレクトリを指定できますTEMPLATE_DIRS

テンプレートディレクトリの検索もTEMPLATE_LOADERS設定に依存します。

詳細については、テンプレートの読み込みを参照してください

于 2013-05-01T11:48:29.733 に答える