Вступление: У меня есть 3 модели user
, post
, group
.Пользователь может создавать сообщения, однако каждое сообщение должно принадлежать группе.Пользователи должны выбирать из существующих групп для своих сообщений.Пользователи не могут добавлять, удалять, обновлять группы.
Более того:
Пользователи могут становиться членами групп и при нажатии на определенную группу.Они видят все сообщения в этой группе.
Что я хочу Когда пользователи заходят на домашнюю страницу, они видят записи, которые были добавлены с момента последнего входа в систему
![enter image description here](https://i.stack.imgur.com/gV0pT.png)
Мои модели
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)
if self.request.user.is_authenticated():
context['object_list'] = Group.objects.filter(members=self.request.user)
#The last login actually shows the users current login time as the last login. Which makes the below line of code useless
new_posts = Post.objects.filter(created_at__gt=self.request.user.last_login).count()
context['new_posts'] = new_posts
else:
context['object_list'] = Group.objects.all()
return context
В моих шаблонах у меня есть
<div class="list-group">
{% for group in object_list %}
{% if not new_posts %}
{{group.post.count}}
{% else %}
{{new_posts}}
{% endif %}
{% endfor %}
</div>
Проблема: Последний вход в систему фактически показывает текущее время входа пользователя в качестве последнего входа.Есть ли способ получить время последнего выхода пользователя из системы, а не время последнего входа в систему? User.last_logout
У меня есть ответ ниже, но он мне не подходит Django creation_at__gt = self.request.user.last_login работает только с пользователями, которые уже вошли в систему.
Функция создания моего профиля
def signup(request):
if request.method == 'POST':
form = UserCreateForm(request.POST or None)
if form.is_valid():
new_user = form.save()
Profile.objects.create(user=new_user)
return redirect('accounts:edit_profile')