型号:
class Meal(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
collection_from = models.DateTimeField(blank=False, null=False)
discount_price = models.DecimalField(blank=False, null=False, decimal_places=2, max_digits=4)
normal_price = models.DecimalField(blank=True, null=True, decimal_places=2, max_digits=4)
available_count = models.IntegerField(blank=False, null=False)
name = models.CharField(blank=False, null=False, max_length=255)
active = models.BooleanField(blank=False, null=False, default=True)
现在,当我保存它的实例时,created_at
和updated_at
值设置正确,例如:2016-08-21 13:13:57.585472+02
。 collection_from
值应该与之前的两个值几乎相同,但是它会被设置为指向第二天,例如:2016-08-22 01:00:00+02
我完全没有得到:)。 collection_from
值看起来与浏览器发送时的值相同:2016-08-21 23:00
。我相信我在settings.py
文件中设置了适当的设置:
TIME_ZONE = 'UTC'
USE_TZ = True
那么这里的问题是什么?如何使Django保存collection_from
的值与created_at
或updated_at
相同?
修改
我注意到当检索到这个模型的值时,我得到了正确的值 - 所以如果我collection_from
字段的值等于数据库中的2016-08-22 01:00:00+02
,那么输出就是转换为初始值,2016-08-21 23:00
。那么现在问题会发生变化 - 为什么created_at
和updated_at
字段与此字段之间存在差异?
EDIT2:
我认为没有必要(正如我所描述的那样,我提供了collection_from
值),但这里是POST请求正文:
[{"collection_from":"2016-08-21 23:00","discount_price"
:"10","normal_price":"20","available_count":"4","name":"pizza"}]
DRF视图保存它:
class MealsCrudView(CreateAPIView):
serializer_class = MealSerializer
序列化器:
class MealSerializer(serializers.ModelSerializer):
class Meta:
model = Meal
答案 0 :(得分:1)
你有没有尝试过:
time.sleep(1)
而不是发送当前时间?