У меня есть приложение 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
Но все же я не понимаю, как мне добиться того, что мне нужно.Звучит очень логично, просто использовать мой подход и не связываться с моей базой данных.Если это возможно.
Любые подсказки приветствуются.Заранее спасибо!