如何捕获子域名的一部分,并通过请求在我的视图中将该名称作为字符串获取。
例如:
user.domain.com
developer.domain.com
我想通过请求捕获此域名的user
部分(假设用户第一次点击该页面时)。
感谢。
答案 0 :(得分:1)
可以使用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
访问子域名(例如在视图中,我认为您需要它)