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/

Вернуться на верх