Django как добавить СЛОВАРЬ в свой(или во вьюшкин) контекст? - Python
Формулировка задачи:
собсно. Django 1.10
Хочу "обсчитать" некоторые штуки по моделям и использовать их в шаблонах, но так чтобы
обсчеты были не в каждой вьюхе и затем добавлялись в контекст данной вьюхи, а централизованно:
создать свой контекст, все там сосчитать, и пользоваться.
создал контекст:
context_processors.py в папке апы tasklist
добавил его в setting.py:
по идее должен увидеть в шаблоне хотя бы "имя" - {{tl_context}} но нету его...
Как сделать?
Листинг программы
- from .models import TaskList, Task
- def tasklist_context(request):
- tl_context = dict()
- tls = TaskList.objects.all()
- for tl in tls:
- complete_task_nmb = Task.filter(tasklist=tl, status=True).count()
- uncomplete_task_nmb = Task.filter(tasklist=tl, status=False).count()
- tl_context[tl.id] = {'ctn': complete_task_nmb, 'utn': uncomplete_task_nmb}
- return {'tl_context': tl_context}
- # return {tl_context} - а если так - то как потом обращаться?
Листинг программы
- TEMPLATES = [
- {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [os.path.join(BASE_DIR, 'templates')]
- ,
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.contrib.auth.context_processors.auth',
- 'django.template.context_processors.media',
- 'django.contrib.messages.context_processors.messages',
- 'tasklist.context_processors.tasklist_context',
- ],
- },
- },
- ]
Решение задачи: «Django как добавить СЛОВАРЬ в свой(или во вьюшкин) контекст?»
textual
Листинг программы
- def get_context_data(self, *args, **kwargs):
- context = super(TaskListIndex, self).get_context_data(**kwargs)
- context['user'] = self.request.user.is_authenticated
- tls = TaskList.objects.filter(user=self.request.user)
- for tl in tls:
- context[str(tl.id)+'ctn'] = Task.objects.filter(tasklist=tl, status=True)
- context[str(tl.id)+'utn'] = Task.objects.filter(tasklist=tl, status=False)
- return context
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д