Для скрытия блока в Django вы можете использовать условие в шаблоне, чтобы определить, должен ли блок быть видимым или скрытым.
В вашем случае, чтобы скрыть блок при отображении страницы с постом, вы можете использовать условие проверки наличия данных поста. Если пост существует, то блок с подробностями поста будет отображаться, если нет, то блок можно скрыть.
В файле `post_detail.html` в вашем проекте можно добавить следующий код:
```django
{% extends 'blog/base.html' %}
{% block content %}
{% if post %}
<article class="post">
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
</article>
{% else %}
<p>Пост не найден.</p>
{% endif %}
{% endblock %}
```
В этом коде мы используем условие if-else для проверки наличия поста. Если пост существует (post), то отображается блок с заголовком и содержимым поста, в противном случае, отображается сообщение "Пост не найден.".
Убедитесь, что в вашем представлении (view) для страницы с постом вы передаете переменную `post` в контекст шаблона. Это можно сделать следующим образом:
```python
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_detail(request, slug):
post = get_object_or_404(Post, slug=slug)
return render(request, 'blog/post_detail.html', {'post': post})
```
Теперь, если пост существует, блок с подробностями поста будет отображаться, а если пост не найден, будет отображаться сообщение об ошибке.