2010-06-02 5 views
1

어떻게하면 하위 도메인 이름의 일부를 캡처하고 요청을 통해 내보기에서 그 이름을 문자열로 가져올 수 있습니까?장고 | 하위 도메인을 문자열로 캡처

예 :

user.domain.com 
developer.domain.com 

내가 요청을 통해이 도메인 이름의 user 일부를 캡처 할가 (처음 사용자가 페이지를 칠 때 말할 수 있습니다).

감사합니다.

답변

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를 사용하여 하위 도메인에 액세스 할 수 있습니다

관련 문제