모델이 비어 있는지 또는 블로그에 메시지를 표시하지 않는지 확인하려고합니다. 예를 들어 아직 게시물이없는 경우 "아직 게시물이 없습니다"라는 메시지를 표시하고 싶지만 표시하지 않습니다. 사용자가 로그인하고 모델이 비어있을 때 django에게 알리는 방법을 알고 있습니다. 여기에 코드가 있습니다.
class Post(models.Model):
title = models.CharField(max_length= 255)
header_image = models.ImageField(null = True, blank = True, upload_to = 'images/')
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextField(blank = True, null = True)
#body = models.TextField()
post_date = models.DateField(auto_now_add=True)
category = models.CharField(max_length=255, default='coding')
snippet = models.CharField(max_length=255)
likes = models.ManyToManyField(User, related_name = 'blog_posts')
class MyPostsView(ListView):
model = Post
template_name = 'app1/my_posts.html'
def post_list(request):
var = False
exists = Post.body.filter(user=request.user).exists()
if exists:
var = True
else:
var = False
context = {'var':var}
return render(request, 'app1/my_posts.html', context)
{% extends "app1/base.html" %}
{% block body_block %}
<div class="container">
<h1>Post</h1>
{% for post in object_list %}
{% if user.is_authenticated %}
{% if user.id == post.author.id %}
<li><a href="{% url 'app1:article-detail' post.pk %}">{{post.title}}</a> -
{{post.author}} - <small>{{post.post_date}}</small> - <small> category : <a href="{% url 'app1:category' post.category|slugify %}">{{post.category}}</a> - </small>
<small><a href="{% url 'app1:updatepost' post.pk %}">Edit</a></small><small>
<a href="{% url 'app1:deletepost' post.pk %}">- Delete</a>
</small></li>
{{post.snippet}}
{% endif %}
{% endif %}
{% empty %}
No Posts yet
{% endfor %}