2

現在のサイト ID を取得するためにSite.objects.get_current()関数を使用している場合、1 つの1のみが返されます。ブラウザで .com または .mx を使用したかどうか。

私のsettings.pyでSITE_ID = 1 が定義されており、それを2に編集するとSite.objects.get_current() 関数が2を返すためだと思います。

しかし、私が実際に望んでいるのは、サイトごとにテンプレートを定義することです 。つまり、ユーザーが .comを使用すると a.html が表示され、.mx を使用すると b.html が表示さます。 )関数は、 .com または .mx のどちらを使用しても id を 1 つしか与えないため、サイトごとにテンプレートを定義できません。

動的なサイト ID を取得する方法を提案してください。または、サイトごとにテンプレートを定義できる別の方法があります。

4

1 に答える 1

2

これは、サイトフレームワークがどのように機能するかを正確に示しているわけではありません。サイトフレームワークを使用してサイトを区別するには、すべてのサイトに独自の設定モジュールが必要です(ここでを設定するためSITE_ID)。

あなたが探しているのは、リクエストから現在のサイトを取得する方法です。RequestSiteこのためにオブジェクトを使用できます:

from django.contrib.sites.models import RequestSite    
site_name = RequestSite(request).domain

さらにいくつかの追加機能(リダイレクト、テンプレート/ URL割り当てなど)で同じことを行うdjango-dynamicsitesもあります。

于 2012-12-07T13:53:06.433 に答える