DjangoのWebサイトのホームページにリンク/ URLを配置するにはどうすればよいですか?
-
03-07-2019 - |
質問
Djangoテンプレートには、コンテキストに変数がありますか(例:{{ BASE\_URL }}
、{{ ROOT\_URL }}
、または{{ MEDIA\_URL }}
を使用して、プロジェクトのhome
URLにリンクできますか?
つまりDjangoがプロジェクトのルートで実行されている場合、テンプレートの変数(Rと呼びましょう){{ R }}
は/
になります。ルートURLがサブフォルダーhttp://host/X/
の場合、変数/X/
は<=>(または<=>)になります。
非常に単純なように見えますが、答えが見つかりません。 :)ありがとうございます!
解決
ホームページの処理に使用しているURL構成に名前を付けて使用することができます:
urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('myproject.views',
url(r'^$', 'index', name='index'),
)
テンプレート:
<a href="{% url index %}">...
更新:新しいバージョンのDjangoでは、ビューの名前を引用符で囲む必要があります:
<a href="{% url 'index' %}">...
Django Bookのこのメモには、アプリケーションをサブディレクトリにデプロイするためのヒントがあります:
他のヒント
常に<a href="/">
のようなものを使用します(もちろん、あなたの家がルートにあると仮定します)。これを一度調べてみたところ、このパスのDjango変数が見つかりませんでした。とにかく、/
はとにかく簡単に思えました。
管理者で、<!> quot; sites <!> quot;に移動します。ドメインを設定します。
問題のテンプレートにcontext_instance=RequestContext(request)
を渡します。
これらのテンプレートのいずれかで{{ SITE_URL }}
を使用すると、黄金色になります。
Django Bookの第10章には、必要以上の情報がありますそのコンテキストプロセッサビットを再確認します。
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),
正常に動作します:)