注:単純化しすぎてサンプルコードが不適切になったため、質問を書き直しました。
これをテストするには、hosts ファイルに次の設定があることを確認してください。
test.local 127.0.0.1
subdomain.test.local 127.0.0.1
settings.py で、Cookie がサブドメイン全体で機能するように設定します。
SESSION_COOKIE_DOMAIN = '.test.local'
次に、次のようなミドルウェアがあります。
from django.contrib import messages
from django.http import HttpResponseRedirect
class AuthorizeAccount:
def process_request(self, request):
if request.get_host() != 'test.local:8000':
messages.error(request, u'No subdomain!')
return HttpResponseRedirect('http://test.local:8000/')
return None
私のテンプレートには以下が含まれます:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
これをテストするには、開発サーバーでhttp://test.local:8000にアクセスし (メッセージは期待されません)、http://subdomain.test.local:8000にアクセスします ( http://testへのリダイレクトが期待されます)。 .local:8000とメッセージ)。
リダイレクトは表示されますが、メッセージが表示されません。何か不足していますか、それともバグですか?