Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313

Для каждого раздела свой баннер

22.04.2020, 22:24. Показов 760. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеем 2 модели:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class BlogPage(models.Model):
    discriptions = models.TextField("Описание страницы", null=True, blank=True)
    banner = models.ImageField("Баннер", upload_to='img/banner', null=True, blank=True)
    section = models.CharField("Раздел блога", max_length=100)
    slug = models.SlugField('URL', max_length=50, unique=True)
 
    def __str__(self):
        return self.section
    
    def get_absolute_url(self):
        return reverse("blog", kwargs={"slug": self.slug})
    
 
    class Meta:
        verbose_name = "Раздел блога"
        verbose_name_plural = "Разделы блога"
    
 
class BlogPost(models.Model):
    subject = models.ForeignKey(BlogPage, on_delete=models.CASCADE, verbose_name='Выбор раздела', related_name='baner')
    discriptions = models.CharField("Discription", max_length=250, default="Психология, психолог Минск")
    image = models.ImageField("Баннер", upload_to='img/banner', null=True, blank=True)
    title = models.CharField("Название статьи", max_length=100)
    is_activ = models.BooleanField(verbose_name='Опубликовать', default=True)
    small_text = models.TextField("Краткое превью")
    text = models.TextField("Текст статьи")
    date = models.DateField("Дата создания поста", auto_now=False, auto_now_add=True)
    slug = models.SlugField('URL', max_length=50, default="diary")
    
 
    class Meta:
        verbose_name = "Пост"
        verbose_name_plural = "Посты"
 
    def __str__(self):
        return self.title
 
    def get_absolute_url(self):
        return reverse("singlepost", kwargs={"slug": self.slug, 'id':self.id})
Вьюха:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
class PostPageView(ListView):
    model = BlogPost
    template_name = 'blog_copy.html'
    context_object_name = 'object_list' 
    paginate_by = 4
    
    def get_queryset(self):
        return BlogPost.objects.filter(subject__slug=self.kwargs.get('slug'))
 
    def get_context_data(self, **kwargs):
        context = super(PostPageView, self).get_context_data(**kwargs)
        context['banner'] = BlogPost.objects.first().subject
        return context
Вывод в шаблон:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<section class="banner-area text-left" style="background: url({{ banner.banner.url }});">
    <div class="container">
        <div class="row">
            <div class="col-xs-12">
                <div class="banner-content-wrapper">
                    <div class="banner-content">
                        <h2>Дненик Персефоны</h2>
                        <div class="banner-breadcrumb">
                            <ul>
                                <li><a href="/">Главная </a> <i class="zmdi zmdi-chevron-right"></i></li>
                                <li>{{ banner.section }}</li>
                            </ul>
                        </div>
                    </div>  
                </div> 
            </div>
        </div>
    </div>
</section>
Выводит баннер только первой модели. Так понимаю что дела в "context['banner'] = BlogPost.objects.first().subject", но не понимаю как изменить что бы он брал баннер к каждой модели, сейчас выводит один для всех.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2020, 22:24
Ответы с готовыми решениями:

Adblock не блокирует баннер или как применить свой CSS для сайта
   Есть баннер (на pastebin.com), который меня раздражает и не получается его убрать навсегда через adblock (при перезагрузке страницы он...

Adblock не блокирует баннер или как применить свой CSS для сайта
   Есть баннер (на pastebin.com), который меня раздражает и не получается его убрать навсегда через adblock (при перезагрузке страницы он...

favicon.ico для каждого раздела
favicon.ico - обязательно должен лежать в корне сайта или допустимо перемещать по каталогам. Если для каждой страницы указывать свою...

2
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
23.04.2020, 11:45
Onet1me, передай в шаблон все баннеры и в цикле выводи их в шаблоне.
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
23.04.2020, 13:34  [ТС]
А как шаблон поймет какой баннер к какой категории принадлежит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2020, 13:34
Помогаю со студенческими работами здесь

Отдельная БД для каждого раздела на сайте
Zelaju vislusatj vase mnenije po odnomu voprosu: Koro4e Ja hotel bi sdelatj otdelnuju DB(Data Base) dlja Foruma, otdelnuju DB dlja novostej...

Сортировка новостей для каждого раздела меню!
Приветствую всех участников форума! Хотел у вас уточнить по реализации одной вещи. Имеем к примеру такую структура сайта: ...

Посоветуйте сайт для каждого раздела, что бы выучить с нуля
Здравствуйте, у меня возможно будет зачет по следующим категориям c++. У меня остался сегодняшний день для учебы. Посовейте сайты на...

Для каждого потока свой Timer
Как можно для каждого потока создать свой таймер и так, чтобы он не влиял на работу таймера другого потока? И работали они параллельно

Свой menucontextstip для каждого узла treeview
Всем привет! Подскажите кто знает как правильно реализовать в компоненте TreeView свой menucontextstrip для каждого узла TreeView. Пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru