Django- Встраивание django-сайтов с несколькими моделями
Я пытаюсь создать продукт с белой этикеткой и думаю использовать модуль django-sites. У меня есть несколько моделей определенного сайта. Я нашел пример, как добавить внешний ключ модели сайта к одной модели. но добавление внешнего ключа модели сайта к каждой модели в каждом вызове api, я не думаю, что это лучшая практика.
Есть ли другой способ определить один раз и он автоматически добавит Site id, как мы используем абстрактные классы для created_at и так далее.
Спасибо.
Вам не нужно добавлять его в вызовы API, вы можете получить текущий сайт из запроса (он также использует кэширование):
from django.contrib.sites.shortcuts import get_current_site
def my_view(request):
current_site = get_current_site(request)
# Will return a Site instance or RequestSite
...
Ор:
from django.contrib.sites.models import Site
def my_view(request):
current_site = Site.objects.get_current(request)
# Don't configure settings.SITE_ID
...
Другие примеры вы можете найти здесь: https://docs.djangoproject.com/en/4.0/ref/contrib/sites/