主页布局

2024-09-19 23:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django创建一个博客网站。我想把一篇文章中的评论数(我有一整本可以调用的文章字典)作为int,并在下面的def中使用它:

def top_three(request)
    first = -1
    second = -1
    third = -1
    com = Comment.objects.filter(approved_comment)
    posts = Post.objects.filter(comments__in=com)
    for post in posts:
        if len(posts) >= 3:
            postvar = len(com)
            if postvar > first:
                first = postvar
                one = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
            elif postvar > second:
                second = postvar
                two = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
            elif postvar > third:
                third = postvar
                three = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
        else:
            return render(request, 'blog/home.html')
    return render(request, 'blog/home.html', {
        'one': one,
        'two': two,
        'three': three,
    })

假设我已经导入了所有需要导入的内容

评论模型与帖子模型直接相关,没有相关帖子的人不能有评论。我的模型是:

class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    url = models.TextField()
    title = models.CharField(max_length=200)
    discription = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

    def approved_comments(self):
        return self.comments.filter(approved_comment=True)

以及

class Comment(models.Model):
    post = models.ForeignKey('blog.Post', related_name='comments')
    author = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    approved_comment = models.BooleanField(default=False)

    def approve(self):
        self.approved_comment = True
        self.save()

    def __str__(self):
        return self.text

你建议我在博客里叫一、二、三怎么样/主页.html?你知道吗


Tags: selfdatereturnobjectsmodelsdefcommentfilter
1条回答
网友
1楼 · 发布于 2024-09-19 23:29:58

如果你想让每一个有评论的帖子都被批准,那就去做吧

com = Comment.objects.filter(approved=True)
my_var = Post.objects.filter(comments__in=com)

相关问题 更多 >