3

私は公式のDjangoチュートリアルに取り組んでいます。パート2の終わりに、管理者テンプレートを少しカスタマイズしてもらいます(見出しのテキストを変更します)。私はすべてを正しく行ったと思いますが、syncdbを実行してサーバーを再起動した後、管理サイトがまったく同じように見えるため、明らかにそうではありません。私のプロジェクトディレクトリ(virtualenv部分を除く)は次のようになります。

mysite
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
├── polls
│   ├── admin.py
│   ├── admin.pyc
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   └── views.py
└── templates
    └── admin
        └── base_site.html

settings.pyに、プロジェクトでtemplates/adminのテンプレートを使用できるようにするために次の行を追加しました。

import os
PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

後で:

TEMPLATE_DIRS = (os.path.join(PROJECT_PATH, 'templates'),)

PROJECT_PATHとに値を割り当てる際に、スラッシュとバリエーションのいくつかの組み合わせを試しましTEMPLATE_DIRSたが、何も機能しませんでした。実際にファイルパス文字列を作成していることを確認するたびに(単純なprintステートメントを使用)。

何が起こっているのかを確認するために、元のDjango base_site.htmlを管理フォルダーに編集し、それによってサイトが変更されたため、明らかにそれを使用しています。私はいくつかのSOの投稿を読みましたが、もう何をすべきか本当にわかりません。

ああ、それが関連している場合:Python2.7.3とDjango1.4.3

4

1 に答える 1

4

私が最初に試みることは、*。pycファイルを削除することです。これらのファイルには、このような問題を引き起こす可能性のある古い情報が含まれていることがよくあります。

そうでない場合は、ここで問題があると思われるあなたPROJECT_PATHを再確認します。

dirname含まれているディレクトリを取得します。そのため、その行がsettings.pyにある場合は/path/to/inner/mysite 、メインのmysite内の行が返さtemplatesれ、内部にディレクトリがないため、機能しませんmysite

あなたがする必要があるのはこれです。

PROJECT_PATH = os.path.realpath(os.path.dirname(os.path.dirname(__file__))) 

mysiteテンプレートと組み合わせると外部パスが返され、正しいパスが返されます。

その後、すべてが機能するはずです。

于 2013-02-19T04:10:47.033 に答える