Джанго | захватить поддомен как строку - PullRequest
1 голос
/ 02 июня 2010

Как мне захватить часть имени субдомена и получить это имя в виде строки в моих представлениях через запрос.

например:

user.domain.com
developer.domain.com

Я хочу захватить часть user этого доменного имени с помощью запроса (скажем, когда пользователь впервые заходит на страницу).

Спасибо.

1 Ответ

1 голос
/ 02 июня 2010

Это можно сделать с помощью middleware .

Вот то, что я использовал ...

class SubdomainMiddleware:
    """ Make the subdomain publicly available to classes """

    def process_request(self, request):
        domain_parts = request.get_host().split('.')
        if (len(domain_parts) > 2) or (len(domain_parts) == 2 and domain_parts[1].find('localhost') != -1):
            subdomain = domain_parts[0]

            if (subdomain.lower() == 'www'):
                subdomain = None
            domain = '.'.join(domain_parts[1:])
        else:
            subdomain = None
            domain = request.get_host()

        request.subdomain = subdomain
        request.domain = domain

Я получил этот код откуда-то и немного его модифицировал, хотя не могу вспомнить, откуда он был изначально.

Просто поместите это в файл где-нибудь, затем добавьте его в список MIDDLEWARE_CLASSES в settings.py.

Затем вы сможете получить доступ к поддомену, используя request.subdomain везде, где доступен запрос (например, в представлениях, где, я полагаю, он вам понадобится)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...