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

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

22.04.2020, 22:24. Показов 744. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru