我有当前代码:
# ...
from django.utils import timezone
class Order(models.Model):
# ...
pay_date = models.DateTimeField(blank=True, null=True)
# ...
def pay(self):
# ...
self.pay_date = timezone.now()
self.save()
我在事务块中调用pay
方法:
# in one view func.
with transaction.atomic():
# ...
order.pay()
在-什么都没发生之后,pay_date
字段仍然None
。你知道吗
我尝试直接从控制台设置pay_date
字段,结果成功了。你知道吗
升级版:
我还尝试在pre_save
信号中设置日期,但它仍然不起作用(状态已更改,顺便说一句):
@reciever(pre_save, sender=Order)
def set_pay_date(sender, instance, **kwargs):
# check the special condition
old_order = Order.objects.get(id=instance.pk)
if old_order.state == States.NEW and instance.state == States.PAID:
instance.pay_date = timezone.now()
目前没有回答
相关问题 更多 >
编程相关推荐