这是django的错误,还是我做错了什么?我有两个问题。
当我仅在没有帖子的情况下放置一个块时,它仍然会插入。
当插入块时,它将呈现块中的内容(在我放置的块中),但也将其再次呈现为html中的某些文本,与插入块的位置相同
无论如何都会添加该块,是否包含帖子,但是只有在有帖子的情况下,才以html显示块文本。
由于堆栈编辑器中的错误,我也在此处发布了代码:https://pastebin.com/bTpGSRzN 图片:https://imgur.com/a/jTEgoKg 视频:https://www.youtube.com/watch?v=DMewEz02EPs
在第一张图片中,它在添加代码和文本的同时在“ if”中添加块“ else”
在第二个中,当实际上没有帖子时,它会在容器中将文本内的内容呈现为文本时添加“ else”块
fclass是在没有帖子的情况下修复页脚,因为页脚将位于屏幕中间,因为没有帖子会占用屏幕空间
PS:在“ posts.html”内部仅存在一个for循环,用于创建包含每个帖子的图像和信息的文章元素,仅此而已
<div class="container">
{% if posts %}
<h2 class="titlep mtop">Posts marcados com <span class="focotxt">{{ tag }}</span></h2>
<p><small>{{ posts.paginator.count }} encontrados</small></p>
{% include "posts.html" %}
{% include "pagination_posts.html" %}
{% else %}
{% block fclass %} fixed-bottom {% endblock fclass %}
<h2 class="titlep mtop">Nenhum post marcado com <span class="focotxt"> {{ tag|truncatechars:20 }}</span></h2>
<p><a href="/blog/">Voltar para o Blog</a></p>
{% endif %}
</div>
views.py
def tags_search(request, tags):
template = 'blog/post_tags.html'
tag = tags
q_obj = Q()
for name in [tag]:
# iexact or icontains
q_obj |= Q(tags__name__iexact=name)
post_list = Post.objects.filter(q_obj)
page = request.GET.get('page', 1)
paginator = Paginator(post_list, 1)
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context = {'tag': tag, 'posts': posts, }
return render(request, template, context)