web-dev-qa-db-ja.com

DjangoのWebサイトのホームページへのリンク/ URLをどのように配置しますか?

Djangoテンプレートでは、コンテキスト内に変数があります(たとえば、{{ BASE\_URL }}{{ ROOT\_URL }}、または{{ MEDIA\_URL }}で、homeプロジェクトのURL?

つまりDjangoがプロジェクトのルートで実行されている場合、テンプレートの変数(Rと呼びましょう){{ R }}/になります。ルートURLがサブフォルダーhttp://Host/X/変数{{ R }}/X/(またはhttp://Host/X/)になります。

痛々しいほど単純に思えますが、答えが見つかりません。 :) ありがとうございました!

21
Brian M. Hunt

ホームページの処理に使用しているURL構成に名前を付けて、次のように使用できます。

urls.py:

from Django.conf.urls.defaults import *

urlpatterns = patterns('myproject.views',
    url(r'^$', 'index', name='index'),
)

テンプレート:

<a href="{% url index %}">...

UPDATE:新しいバージョンのDjangoでは、ビューの名前を引用符で囲む必要があります。

<a href="{% url 'index' %}">...

Django Bookのこのメモには、アプリケーションをサブディレクトリにデプロイするためのヒントがいくつかあります。

http://www.djangobook.com/en/1.0/chapter20/#cn4

41
Jonny Buchanan

私はいつも<a href="/">のようなものを使用します(もちろん、あなたの家がルートにあると仮定します)。これを一度調べたのを覚えているようですが、このパスのDjango変数が見つかりませんでした。とにかく、/はかなり簡単に見えました。

12
mipadi

管理者で、「サイト」に移動してドメインを設定します。

問題のテンプレートにcontext_instance=RequestContext(request)を渡します。

これらのテンプレートのいずれかで{{ SITE_URL }}を使用すると、ゴールデンになります。

Django Book の第10章には、そのコンテキストプロセッサビットを再調整する必要があるよりも多くの情報があります。

4
ryansholin
(r'^$', 'Django.views.generic.simple.redirect_to', {'url': '/home/'}),

正常に動作します :)

2
justin jools