django.contrib.auth
のDjango 1.11およびUser
モデルを使用しています。ここでuser.last_loginフィールドを更新できません
は私のコードです:
from django.contrib.auth.models import User
from django.utils import timezone
u = User.objects.create_user('user1')
print(u.last_login) # prints old date
u.last_login = timezone.now()
u.save()
u.refresh_from_db() # just in case
print(u.last_login) # prints old date
はなぜlast_login
フィールドが更新されませんか?
@receiver(models.signals.pre_save, sender=User)
def by_pass_save_last_login(sender, instance, **kwargs):
u = User.objects.get(pk=instance.pk)
if not instance.last_login:
instance.last_login = timezone.now()
else:
instance.last_login = u.last_login
それは、データベースからユーザをロードして、それがlast_login
だから、それがいることを設定したNone
次のとおりです。
は、あなたがチェックすることができます'プリント(u.last_login):この受信機を修正
は、問題を修正しましたか? – NoobEditor
@NoobEditorちょうど試しましたが、それはまだ古い値です。 –
エラーはありませんか?あなたは '.py'ファイルまたはシェル経由でそれを実行していますか? – NoobEditor