Django: Передача объектов модели контекстным_процессорам
Как новый разработчик Django, я столкнулся с проблемой, пытаясь передать список объектов модели в глобальную переменную, доступную в любом шаблоне, в любом приложении.
settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(PROJECT_ROOT, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'myapp.site_context.site_context_processor',
],
},
},
]
site_context.py
from .apps.events.models import Event
def site_context_processor(request):
ctx = {}
ctx['current_year'] = time.strftime("%Y")
ctx['events'] = Event.objects.active()[0]
return ctx
Я столкнулся с проблемой отсутствия app_label
в модели Events, но когда я добавляю это, я получаю конфликтующие приложения в settings.py
Model class myapp.apps.events.models.Event doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
когда settings.py выглядит как
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
'directory',
'events',
'utilities',
'filebrowser',
]
но когда я добавляю приложение через myapp.apps.Events
, я получаю RuntimeError: Conflicting 'event' models in application 'events': <class 'events.models.Event'> and <class 'myapp.apps.events.models.Event'>.
Не уверен, куда двигаться дальше. Любая помощь будет очень признательна.