1

こんにちはみんな私のdjangoアプリのURLは以下で機能していません私のプロジェクトurls.pyです

     urlpatterns = patterns('',

           url(r'^admin/', include(admin.site.urls)),
            url(r'^', include('recipe.urls', namespace="recipe")),

    )

これが私のアプリのurls.pyです

from django.conf.urls import patterns,url


urlpatterns = patterns('recipe.views',

    url(r'^$', 'index', name='index'),
    url(r'^create/recipe/$', 'create_recipe', name='create_recipe'),
    url(r'^create/ingredients/(?P<recipe_id>\d+)/$', 'create_ingredients', 
    name="create_ingredients"),
    url(r'^create/steps/(?P<recipe_id>\d+)/$', 'create_steps', 
    name="create_steps"),
     url(r'^view/recipe/(?P<recipe_id>\d+)/$', 'view_recipe', 
    name="view_recipe"),
)

管理者が正常に動作している場合を除いて、インデックスページやその他のURLを取得できません。私を助けてください

4

2 に答える 2

0

で、これsettings.pyを見つけて編集します-

TEMPLATE_DIRS = (
    os.path.join(os.path.abspath(os.path.dirname(__file__)), "templates"),
)
于 2013-02-17T18:47:11.650 に答える
0

質問のコメントから、urlconfigではなくDjangoのテンプレートに問題があるようです。Djangoテンプレートの仕組みは次のとおりです。あなたの中で、Djangoがテンプレートを探すすべてのディレクトリのタプルを指定するsettings.py変数を定義します。TEMPLATES_DIRS

次のものがあると仮定しますTEMPLATES_DIRS

TEMPLATES_DIRS = (
    '/absolute/path/to/foo',
    '/absolute/path/to/bar',
)

次に、テンプレートを探す場合base.html、Djangoは次の場所でテンプレートを探し、見つかった場合は最初の場所を使用します。

/absolute/path/to/foo/base.html
/absolute/path/to/bar/base.html

あなたの場合、テンプレートをDjangoのプロジェクトフォルダーとアプリのフォルダーの両方に保存するとおっしゃいました。その場合、両方のフォルダが次のTEMPLATES_DIRSように定義されていることを確認する必要があります。

TEMPLATES_DIRS = (
    '/absolute/path/to/project/templates',
    '/absolute/path/to/app/templates',
)

base.html次に、あなたの場合、Djangoはとの両方を見つけることができますindex.html。物事を簡単にするために、プロジェクトを別の場所に簡単に移動できるように、プロジェクトパスへの絶対パスを格納するをPROJECT_PATHで定義できます。settings.pyこれがあなたの問題かもしれないところだと思います。Django> = 1.4では、次のプロジェクト構造があります。

/project         <= this should be your PROJECT_PATH
  /project       <= instead of this
    templates/
      base.html
    settings.py
  /recipe
    templates/
      index.html
    models.py

それを念頭に置いて、次のようなものを使用してみてください。

PROJECT_PATH = os.path.abspath(os.path.join(__file__, '..', '..'))
PROJECT_NAME = os.path.basename(PROJECT_PATH)

TEMPLATES_DIRS = (
    os.path.join(PROJECT_PATH, PROJECT_NAME, 'templates'),
    os.path.join(PROJECT_PATH, 'recipe', 'templates')
)

上記では、PROJECT_PATHはプロジェクトの絶対パスを計算します。settings.pyあなたがにいると想像してください/some/path/project/project/settings.py。次に、次のようにプロジェクトパスを計算します。

>>> # settings.py

>>> print __file__
/some/path/project/project/settings.py
>>> print os.path.join(__file__, '..', '..')
/some/path/project/project/settings.py/../../
>>> # now abspath normalizes the path two levels up
>>> print os.path.abspath(os.path.join(__file__, '..', '..'))
/some/path/project

>>> # now you figure out the project name so that you can get the project templates folder
>>> print os.path.basename(os.path.abspath(os.path.join(__file__, '..', '..')))
project

>>> print os.path.join(PROJECT_PATH, PROJECT_NAME, 'templates')
/some/path/project/project/templates
>>> print os.path.join(PROJECT_PATH, 'recipe', 'templates')
/some/path/project/recipe/templates
于 2013-02-17T18:48:07.093 に答える