2017-10-11 37 views
0

Je développe une application en django avec de nombreux sous-domaines. Par exemple www.mysite.com, mx.mysite.com, es.mysite.com, nz.mysite.com Tous ces modèles doivent rediriger vers la même application django et afficher la page html avec la langue du pays.Comment capturer le sous-domaine dans une vue django?

Y at-il un moyen de capturer le sous-domaine dans le views.py?

Je veux quelque chose comme ça dans views.py:

######## VIEWS.PY ########### 
def hompage(request): 
    subdomain = #HERE IS WHERE I WANT TO CAPTURE THE SUBDOMAIN 
    if subdomain=='www': 
     contextdict = {"Language": "English"} 
    else if subdomain=='mx': 
     contextdict = {"Language": "Spanish"} 
    return render(request, 'mysite/index.html', contextdict) 

Répondre

0

Au fond, la question se compose de trois parties:

  1. Comment obtenir l'URL dans la vue. Répondu here
  2. Comment analyser l'URL. Peut-être trouvé here si vous avez Python 3
  3. Enfin, vous devez get the subdomain from string

    d'importation urllib.parse urlparse

    url = request.META [ 'HTTP_HOST']

    parse = urlparse (url)

    impression (parse.netloc.split ('') [0])