Как проверить новые сообщения с момента последнего входа в систему Django - PullRequest
0 голосов
/ 16 декабря 2018

Вступление: У меня есть 3 модели user, post, group.Пользователь может создавать сообщения, однако каждое сообщение должно принадлежать группе.Пользователи должны выбирать из существующих групп для своих сообщений.Пользователи не могут добавлять, удалять, обновлять группы.

Более того:

Пользователи могут становиться членами групп и при нажатии на определенную группу.Они видят все сообщения в этой группе.

Что я хочу Когда пользователи заходят на домашнюю страницу, они видят записи, которые были добавлены с момента последнего входа в систему

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: имя 'creat_at__gt' не определено

1 Ответ

0 голосов
/ 16 декабря 2018

Ошибка из-за того, что вы пропустили равно символу ,

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