Задать вопрос
@ooker

Как отобразить ссылку из view в шаблоне Django?

Привет!
Где найти инфу как скидывать ссылки {% url 'name' %}в шаблон из view?
Нужно при создании статьи в админ панель в тег "а" добавлялась ссылка на страницу с идентичной тематикой.
Я так понимаю надо модель писать, а что если страниц много(нужен выбор)?
Кто то сталкивался?
html
{% for post in object_list %}
<div class="blog vertical-blog col-lg-4 col-md-4 col-sm-6 col-xs-12">
 <div class="blog-foto"><a href="{{ post.get_absolute_url }}"><img src="/media/{{ post.article_image_field }}"></a></div>
<div class="blog-date">{{ post.article_datetime }}</div>
div class="blog-subtitle"><a href="">{{ post.article_razdel }}</a></div>
<div class="blog-title"><a href="{{ post.get_absolute_url }}">{{ post.article_title }}</a></div>
</div>
{% endfor %}

вью
class BlogArticles(ListView):  # Главная страница 
    model = BlogNewArticles
    template_name = "blog/blog.html"

    def get_context_data(self, **kwargs):
        context = super(BlogArticles, self).get_context_data(**kwargs)
        context['blockheader'] = BlogPromoHeader.objects.all()  # Реклама шапка
        context['blockcenter'] = BlogPromoCentre.objects.all()  # Реклама центр1
        context['blockfooter'] = BlogPromoFooter.objects.all()  # Реклама подвал
        return context
  • Вопрос задан
  • 367 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@ooker Автор вопроса
Спасибо за ответ сделал так
{% if post.article_razdel == "ПАРИКМАХЕРСКАЯ" %}
{{ post.article_razdel }}
{% elif post.article_razdel == "КОСМЕТОЛОГИЯ" %}
{{ post.article_razdel }}

много логики в шаблоне, можно перенести во вью но пока не понимаю как это сделать в классе ListView
Написано только что
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@gromyko21
Если я правильно понял вопрос - нужно указывать в url адресе, где указываете пути(не корневом). То есть пишете например
path('', views.home, name='home_url'),

И {% url 'home_url' %} будет вашей ссылкой. То есть нужно указывать тег name
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы