おそらく単純な質問で、何かが足りないだけですが、アイデアがありません。
私は Django プロジェクトをいくつかのサイトに提供しsessions.py
、まったく異なるROOT_URLCONF
s を使用しています。1 つのサイトはユーザー登録、認証、およびプロファイル設定を処理し、別のサイト (別のドメイン上) はファイル マネージャーとして機能します。サイトは同じ DB、メディア、およびテンプレートを共有しています。すべてのサイトが同じユーザーベースを共有しており、一種の透過的なシングル サインオン/シングル サインオフ メカニズムを実装しています。これは、複数のドメインにまたがる 1 つの大きなサイトのようなものです。
問題は、テンプレートに多くの{% url %}
タグがあり、テンプレートが他のサイトで使用されている場合に機能しないことです。また、URL のハードコーディングはできるだけ避けたいと考えています。
たとえば、サイト A (a.example.org) には
url('^users/$', 'example.accounts.list_users', name='list_users'),
A の URLconf のエントリ。次に、global_menu.html
私が持っているいくつかのテンプレートで{% url list_users %}
、明らかに完全に機能し、「/users/
」になります。
現在、サイト B (b.example.org) があり、多くの内部構造を A と共有しています。共通のルック アンド フィールを持たせるために、global_menu.html
サイト Bでも同じものを使用し、 {% url list_users %}
" " を出力したいと考えていますhttp://a.example.org/users/
。これを達成するための最良の方法は何ですか?
現在、私はglobal_menu.html
サイトごとに別々に使用していますが、これは DRY の原則に反しており、あまり便利ではありません。そして、はい、私は Django のフレームワークを使用しており、サイトごとにcontrib.sites
個別SITE_ID
の が定義されていますが、実際には他の場所ではまだ使用していません。settings.py
更新url
:現在、タグまたはモンキーパッチを再実装reverse()
して、元のものを呼び出し、例外で「外部URIリスト」で追加のルックアップを実行することを考えています。このようなものが既に存在する場合 — 喜んで伺います。
回答ありがとうございます!