ПРИМЕЧАНИЕ: переписал вопрос из-за упрощения, которое привело к неверному примеру кода.
Чтобы проверить это, убедитесь, что у вас есть следующие настройки в вашем файле 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 и сообщение) .
Я получаю перенаправление, но не получаю сообщение. Я что-то упустил или это ошибка?