如何在 Django 中使用查询集更改日期时间字段

How to change Datetime field with queryset in Django

这是class

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) 时,我发现它没有改变,仍然是一个旧的日期时间值 怎么了?

您没有为 post 更新此内容,您只是将 局部变量 设置为当前时间戳。

您可以更新经过身份验证的用户的 Post 条记录:

from django.utils.timezone import now

if request.user.is_authenticated:
    Post.objects.filter(author=user).<b>update(last_seen=now())</b>

您还没有保存对象 post 更新。因此它没有反映出来。你可以这样做

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()