Python 如何在Django中使用queryset更改日期时间字段

Python 如何在Django中使用queryset更改日期时间字段,python,django,datetime,field,django-queryset,Python,Django,Datetime,Field,Django Queryset,这是一节课 class Post(models.Model): author = models.ForeignKey(User) . . last_seen = models.DateTimeField(auto_add = True) 我想把上次看到的时间改成将来的另一个时间 last_seen = Post.objects.get(author = user).last_seen if request.user.is_authenticated: l

这是一节课

class Post(models.Model):
    author = models.ForeignKey(User)
    .
    .
    last_seen = models.DateTimeField(auto_add = True)
我想把上次看到的时间改成将来的另一个时间

last_seen = Post.objects.get(author = user).last_seen
if request.user.is_authenticated:
    last_seen = timezone.now()
当我运行print(上次看到)时,我发现它没有改变,仍然是一个旧的datetime值
怎么了?

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

您可以使用以下内容更新已验证用户的
Post
记录:

from django.utils.timezone import now

if request.user.is_authenticated:
    Post.objects.filter(author=user).update(last_seen=now())
从django.utils.timezone立即导入
如果request.user.u经过身份验证:

Post.objects.filter(author=user).update(last_seen=now())
更新后您尚未保存对象。因此,它没有得到反映。你也可以这样做

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