我一直试图调试为什么我的几个模型中的last_updated字段没有被更新时model.objects.filter(**lookups).update(**defaults),例如:
class PaymentMethod(models.Model):
MONTHLY_DIRECT_DEBIT = 'MDD'
QUARTERLY_DIRECT_DEBIT = 'QDD'
CASH_OR_CHEQUE = 'CAC'
PAY_IN_ADVANCE = 'PYM'
PAYMENT_CHOICES = (
(MONTHLY_DIRECT_DEBIT, 'Monthly Direct Debit'),
(QUARTERLY_DIRECT_DEBIT, 'Quarterly Direct Debit'),
(CASH_OR_CHEQUE, 'Cash or Cheque'),
(PAY_IN_ADVANCE, 'Pay Monthly in Advance'),
)
unique_id = models.CharField(max_length=3, choices=PAYMENT_CHOICES)
last_updated = models.DateTimeField(auto_now=True)
def __str__(self):
Run Code Online (Sandbox Code Playgroud)
在这里,我只是尝试更新单个条目,而不需要将实例加载到内存中.这似乎是一个无法解决的问题,在docshttps://code.djangoproject.com/ticket/15566中解释了'bug'(出于某种原因,我无法在文档中看到它).
但是,更新单行的最佳方法是什么,包括last_updated字段(无需加载到内存中)?
它不起作用,因为这个问题已发布(声明不会修复)https://code.djangoproject.com/ticket/22981
.update()只会更新显式传递给它的字段,因此不会更新auto_now = True的datetimefields.
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |