django - 如何检查自用户上次登录 Django 以来的新帖子

标签 django python-3.x django-models django-views django-queryset

简介:我有 3 个模型用户帖子。用户可以发布帖子,但每个帖子必须属于一个组。用户必须从现有的群组中选择他们的帖子。用户无法添加、删除、更新组。

此外:

当用户单击某个组时,他们可以成为组的成员。他们看到该组中的所有帖子。

我想要什么当用户进入主页时,他们会看到自上次登录以来添加的帖子

enter image description here

我的模型

class Post(models.Model):
    user = models.ForeignKey(User, related_name='posts')
    group = models.ForeignKey(Group, related_name='posts')
    title = models.CharField(max_length=250, unique=True)
    message = models.TextField()
    created_at = models.DateTimeField(auto_now=True)

我的观点

class Homepage(TemplateView):
    template_name = 'home.html'

    def get_context_data(self, **kwargs):
        context = super(Homepage, self).get_context_data(**kwargs)
        context['object_list'] = Group.objects.all()
        context['post_list'] = Post.objects.order_by("-created_at")

        #What am I doing wrong in the below code
        if self.request.user.is_authenticated(): 
             new_posts = Post.objects.filter(created_at__gt(self.request.user.last_login))
             context['new_posts'] = new_posts.count()
        return context

在我的模板中,我有

<div class="list-group">
        {% for group in object_list %}            
            {{group.name}} 
            {% if new_posts > 0 %}        
            {{new_posts}} new
        {% endfor %}
</div>

NameError: name 'created_at__gt' is not defined

最佳答案

该错误是因为您错过了等于符号

new_posts = Post.objects.filter(created_at__gt <b>=</b> self.request.user.last_login)
                                              <b>^^^ here</b>

关于django - 如何检查自用户上次登录 Django 以来的新帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53799296/

相关文章:

python - 登录 Django 后无法将用户重定向到下一页

javascript - 我可以将 Node.js 包与 Django 一起使用吗?

python - 在 Python 中模拟无限生成器

python - 格式化可选文本字符串的更有效方法

python - 为什么不能在 f 弦的大括号内使用反斜杠?我该如何解决这个问题?

python - 如何避免在 Django views.py 中重复一大块代码

django - 使用 Node.js 和 Django 作为后端处理请求

python - 如何在 Django Admin 中添加额外字段?

python - 如何使用默认属性向现有 Django 模型添加非空唯一值

python - 使用查询数据库的默认字段函数迁移时出现 Django 错误