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