Я недавно столкнулся с этой же проблемой, за исключением того, что я позволил пользователям создавать свои собственные настраиваемые поддомены.Я решил это путем создания пользовательского промежуточного программного обеспечения.модель Poster
будет соответствовать вашей языковой модели.Я не думаю, что разбор URL-адресов является тривиальной задачей, я использую tldextract
, он отлично работает.https://github.com/john-kurkowski/tldextract
from our_jobs.apps.poster.models import Poster
import tldextract
class SubdomainMiddleware:
"""Handle if request is coming from subdomain"""
def process_request(self, request):
"""Filter the given request"""
host = request.META.get('HTTP_HOST', '')
extract = tldextract.extract(host)
request.poster = None
if extract.subdomain:
try:
request.poster = Poster.objects.get(subdomain=extract.subdomain)
except Poster.DoesNotExist:
pass
Это документация промежуточного программного обеспечения.https://docs.djangoproject.com/en/dev/topics/http/middleware/