Как перебрать мой постлист для отображения тегов из taggit? - PullRequest
0 голосов
/ 24 мая 2019

Я хочу перебрать свой постлист, чтобы при клике показывать все посты с одинаковым тегом.Я хочу, чтобы они отображались в index.html.Я понимаю функцию, но я не знаю, как внедрить ее в мой шаблон.

Мой views.py

    from django.views import generic
from .models import Post
from django.shortcuts import render

class PostList(generic.ListView):
    model = Post
    template_name = 'index.html'

class PostDetail(generic.DetailView):
    model = Post
    template_name = 'post_detail.html'

def tag(request, slug):
    posts = Post.objects.filter(tags__slug=tag)
    return render(request, 'index.html', {"post_list": posts, "tag": tag})

def about(request):
    return render(request, 'about.html', {})

Мой шаблон

 <header class="masthead" >
            <div class="overlay"></div>
            <div class="container">
              <div class="row">
                  <div class="site-heading">
                    <h5 class=" site-heading mt-3"> Erfolgreiche Problemlösungen in der Programmierung, Linux und Windows</h5>
                    <p class="texthead">
                    </p>
                </div>
                    </div>
                  </div>
                </div>
            </div>
              </header>

            <div class="container">
                <div class="row">

              <!-- Blog Entries Column -->
              <div class="col-md-8 mt-3 left">
              {% for post in post_list %}
                <div class="card mb-4" >
                  <div class="card-body">
                    <h2 class="card-title">{{ post.title }}</h2>
                    <p class="card-text text-muted h6">{{ post.author }} | {{ post.created_on | date:"d M Y"}} | Tag:
                        {% for tag in post.tags.all %}
                            <a class="mycardtext" href="{% url 'tag' tag.slug %}">{{ tag.name }}</a>
                        {% empty %}
                          None
                        {% endfor %}
                        </p>

                        <p class="card-text">{{post.content|truncatewords:25|safe}}</p>
                        <div><a href="{% url 'post_detail' post.slug  %}"
                        class="btn btn-danger">Weiterlesen</a></h3>
                    </div>
                  </div>

                </div>
                {% endfor %}
            </div>
                {% block sidebar %}
                {% include 'sidebar.html' %}
                {% endblock sidebar %}
            </div>
        </div>
{%endblock%}

МойUrls.py

from . import views
from django.urls import path
from django.urls import include
from django.views.generic.base import RedirectView



favicon_view = RedirectView.as_view(url='/home/UrosDobricic/mysite/static/favicon.png', permanent=True)

urlpatterns = [
    path('', views.PostList.as_view(), name='home'),
    path('about', views.about, name='about'),
    path('<slug:slug>/', views.PostDetail.as_view(), name='post_detail'),
    path("tag/<slug:slug>/", views.tag, name='tag'),

]

Теги отображаются в блоге.Моя проблема в том, что я создал в views.py этот post_list = Post.objects.filter (tags__slug = tag), но в моем шаблоне я не определил ни одного сообщения.Поэтому, когда я определяю часть: {% для тега в post.tags.all%} в to {% для тега в post_list.tags.all%}, в моем блоге отображается «NONE».Я не могу найти правильное решение, поэтому я хотел спросить, есть ли у кого-нибудь совет для меня.Обычно это означает, что мне нужно отобразить

{% для тегов в post_list%}

{{tags}}

{% endfor%}

Или я не прав?Если кто-то может ответить с примером на основе моих файлов, это было бы здорово.

1 Ответ

0 голосов
/ 24 мая 2019

Благодаря Диркгротену я решил свою проблему с его помощью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...