Django: обнаружение домена запроса в urls.py - PullRequest
1 голос
/ 29 сентября 2019

У меня есть приложение Django, которое будет обслуживать разные веб-сайты.

  • У каждого будет свой домен
  • У каждого будет свое собственное суб-приложение с шаблонамии представления
  • Все они используют один и тот же бэкэнд, модели и данные

Мой подход

Поскольку у меня уже есть база данных с сегментациейинформация Мне нужно показать желаемые продукты на каждом сайте, и у меня будут разные представления для каждого дополнительного приложения, мне не нужно добавлять другое поле в модели.

Я думаю, что было бы проще простоопределить домен запроса в моем главном приложении urls.py и направить домашний URL к нужному вспомогательному приложению.

Что-то вроде:

# urls.py

if "name1" in request.domain:
    urlpatterns += [path('', include('app1.urls'))]
if "name2" in request.domain:
    urlpatterns += [path('', include('app2.urls'))]
else:
    urlpatterns += [path('', include('app3.urls'))]

Может быть, мне следует создать промежуточное ПО и установить глобальную переменнуюЯ могу получить доступ в urls.py?Могу ли я использовать такого рода операторы if в urls.py?

сайтах Django

Я проверил Django Sites Framework, но если я правильно понимаю, этобольше внимания уделяется сегментации базы данных по моделям, а не по шаблонам и представлениям.В любом случае, я не совсем понимаю, как платформа Sites обнаруживает входящий URL-адрес и отправляет запрос каждому вспомогательному приложению.

Другие намерения

Я искал большеinfo и эта статья могут проинформировать вас о найденной проблеме.

https://medium.com/crowdbotics/how-to-use-dynamic-subdomains-in-django-dc1cb2cac00b

Но все же я не понимаю, как мне добиться того, что мне нужно.Звучит очень логично, просто использовать мой подход и не связываться с моей базой данных.Если это возможно.

Любые подсказки приветствуются.Заранее спасибо!

...