🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

651閲覧

テンプレートの名前空間について

aae_11

総合スコア178

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/14 11:54

Django公式チュートリアルにおきまして、分からない部分がございます。
リンク先ページのテンプレートの名前空間の項目欄に記載がありました以下の部分なのですが、テンプレートを「polls/templates/polls/index.html」と書かなくても、異なるアプリケーションのテンプレートはそもそも「polls/templates」内におかないのではないでしょうか...?
他アプリケーションを作成する場合、そもそも別のプロジェクトディレクトリを作りそちらで操作を行うのでは良いのではないか、と思ってしまいました。

直接 polls/templates の中に置いてもいいのではないか、と思うかもしれませんね。しかし、それは実際には悪い考えです。Django は、名前がマッチした最初のテンプレートを使用するので、もし 異なる アプリケーションの中に同じ名前のテンプレートがあった場合、Django はそれらを区別することができません

まだ学習を始めたばかりでずれた質問になってしまっているかもしれないのですが、どなたかご助言頂けましたら幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

もし 異なる アプリケーションの中に同じ名前のテンプレートがあった場合

というのは例えば、

1つのプロジェクトの中に、hogefugaという2つのアプリケーションがあって、それぞれに
hoge/templates/index.html
fuga/templates/index.html
いうように、同じ名前でファイルを置いてしまった場合

という意味です。

そうすると(index.htmlという)同じ名前のテンプレートになるから区別することができない、と言っています。


他アプリケーションを作成する場合、そもそも別のプロジェクトディレクトリを作りそちらで操作を行うのでは良いのではないか、と思ってしまいました。

https://docs.djangoproject.com/ja/2.2/intro/tutorial01/#creating-the-polls-app

このあたり

プロジェクトとは、あるウェブサイト向けに設定とアプリケーションを集めたものです。一つのプロジェクトには複数のアプリケーションを入れられ ます。また、一つのアプリケーションは複数のプロジェクトで使えます。

を読んでください。というかチュートリアルの前の部分なので読み終わっているはずです。

投稿2019/11/14 14:06

quickquip

総合スコア11231

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aae_11

2019/11/15 00:45 編集

ご回答ありがとうございます。 >プロジェクトとは、あるウェブサイト向けに〜 こちらは読みはしていたのですが、今回のケースですと「polls/templates」ここの部分だけで、pollsアプリのテンプレートであると判断できますし、別のアプリを作成する場合は、同一プロジェクト内に「 python manage.py startapp test」などとし、「test」アプリを作成し、「test/templates」フォルダの中にテンプレートファイルを入れればpollsアプリのテンプレートか、testアプリのテンプレートかは判断がつくのではないかと思ったんですよね...
quickquip

2019/11/15 01:14

なぜそのような設計にしたのか? という視点を持ったままでチュートリアルを進めるといいと思いますよ。
aae_11

2019/11/15 01:28

わかりました。まだ最初の方ですし、チュートリアルで示されている設計方法に注意しつつ、進めていきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問