Это класс

class Post(models.Model):
    author = models.ForeignKey(User)
    .
    .
    last_seen = models.DateTimeField(auto_add = True)

Я хочу изменить время last_seen на другое время в будущем

last_seen = Post.objects.get(author = user).last_seen
if request.user.is_authenticated:
    last_seen = timezone.now()

Когда я запускаю print (last_seen), я обнаруживаю, что оно не меняется, а значение даты и времени остается старым, что не так?

1
Mega En 28 Фев 2021 в 13:32

2 ответа

Лучший ответ

Вы не сохранили обновление публикации объекта. Следовательно, это не отражается. Вы можете сделать то же самое

your_post = Post.objects.get(author = user)
if request.user.is_authenticated:
    your_post.last_seen = timezone.now()
    your_post.update() // can also you object.save()
1
Harsha Vardhan 28 Фев 2021 в 10:44

Вы не обновляли это для сообщения, вы только установили локальную переменную на текущую метку времени.

Вы можете обновить записи Post для аутентифицированного пользователя с помощью:

from django.utils.timezone import now

if request.user.is_authenticated:
    Post.objects.filter(author=user).update(last_seen=now())
1
Willem Van Onsem 28 Фев 2021 в 10:34