5

事前に設定されたドメインにリンクするために、逆引き URL ルックアップを使用できるようにしたいと考えています。

テンプレートで:

<a href="{% url 'admin_site' %}">Admin</a>

ページが置かれhttp://www.mydomain.com/homeている場所と管理サイトがある場所http://admin.mydomain.com- または開発モードの場合は、http://devadmin.localhost

環境変数を使用して設定でドメインを設定できますが、URL フレームワークでそのドメインをページ テンプレートに配置するにはどうすればよいでしょうか?

これを達成するための 2 つの簡単なルート:

  1. /go/admin私が設定したドメインにリダイレクトするような場所にあるリダイレクトビューを作成するだけです。

  2. 自分のドメインをテンプレート コンテキストに含め、href を次のように書き換えます。<a href="{{ ADMIN_SITE }}">

どちらのオプションも機能します。ただし、どちらにも欠点があります。1 つ目は余分なリダイレクト手順が必要であり、2 つ目はurl他のリンクと同じタグを使用していません。

4

1 に答える 1

2

に外部 URL を直接追加できる/追加すべきではないと思いますurls.py。そのファイルは、djangoサーバーから解決する必要があるURL用であるため、ページが別のサーバーにある場合...そして、それを利用したい場合は{% url %}、リダイレクトを介する必要があります.

私はこれを行います:

from django.conf.urls import patterns, url
from django.views.generic import RedirectView

urlpatterns = patterns('',
    # ...

    url(r'^remote_admin/$', RedirectView.as_view(url='http://admin.mydomain.com'),
        name='remote_admin'),
    url(r'^dev_admin/$', RedirectView.as_view(url='http://devadmin.localhost'),
        name='dev_admin'),
)

その後{% url %}、通常どおり動作するはずです。

{% url 'remote_admin' %}
于 2013-08-22T09:49:13.317 に答える