Django 如何修复RuntimeWarning:DateTimeField收到一个朴素的>;时区支持处于活动状态时的日期时间?
完全回溯 C:\Users\p.A.N.D.E.M.I.C\Desktop\td11\lib\site packages\django\db\models\fields\uuuuu init\uuuuu.py:1451: RuntimeWarning:DateTimeField UserProfile.key\u expires收到一个简单的 时区支持处于活动状态时的日期时间(2017-07-04 14:18:43)。Django 如何修复RuntimeWarning:DateTimeField收到一个朴素的>;时区支持处于活动状态时的日期时间?,django,datetime,django-views,Django,Datetime,Django Views,完全回溯 C:\Users\p.A.N.D.E.M.I.C\Desktop\td11\lib\site packages\django\db\models\fields\uuuuu init\uuuuu.py:1451: RuntimeWarning:DateTimeField UserProfile.key\u expires收到一个简单的 时区支持处于活动状态时的日期时间(2017-07-04 14:18:43)。 运行时警告) 这是我的用户配置文件模型 class UserProfile(
运行时警告) 这是我的用户配置文件模型
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
slug = models.SlugField(unique=False, default=None, blank=True)
activation_key = models.CharField(max_length=90, default=None, blank=True)
key_expires = models.DateTimeField(default=None)
这是我的看法
profile = UserProfile.objects.create(
user=user,
slug=username,
key_expires=datetime.datetime.strftime(timezone.now() + datetime.timedelta(days=2), "%Y-%m-%d %H:%M:%S"),
activation_key=get_secret_key
)
当时区支持处于活动状态时,您确实应该使用
timezone.now()
。
但不需要使用字符串初始化DateTimeField,Django将直接处理datetime对象
因此,要保持对tz的了解,您应该写:
from django.utils import timezone
profile = UserProfile.objects.create(
user=user,
slug=username,
key_expires=timezone.now() + datetime.timedelta(days=2),
activation_key=get_secret_key
)
当时区支持处于活动状态时,您确实应该使用
timezone.now()
。
但不需要使用字符串初始化DateTimeField,Django将直接处理datetime对象
因此,要保持对tz的了解,您应该写:
from django.utils import timezone
profile = UserProfile.objects.create(
user=user,
slug=username,
key_expires=timezone.now() + datetime.timedelta(days=2),
activation_key=get_secret_key
)