gpt4 book ai didi

django - 使用 save(update_fields = […]) 时强制执行 auto_now

转载 作者:行者123 更新时间:2023-12-01 11:43:23 24 4
gpt4 key购买 nike

模型定义:

class Footprint(models.Model)
date = models.DateTimeField(auto_now = True)

class Stuff(Footprint):
name = models.CharField(max_length = 255)
some_other_field = models.CharField(max_length = 255)

Stuff对象,我只想更新 name字段,并保持所有其他字段不变,除了在相关的 Footprint 中定义的那些。目的。
Footprint 中的字段如果我不使用 update_fields,对象会正确更新:
s = Stuff.objects.get(pk = 1)
s.name = 'Alexander'
s.save()

s.date # is correctly set

但是如果我指定要更新的字段,则关联的 Footprint甚至没有被保存。
s = Stuff.objects.get(pk = 1)
s.name = 'Tim'
s.save(update_fields = ['name'])

s.date # unfortunately, remains unchanged!!

我必须使用 update_fields以避免多个脚本之间的干扰。

同时,我想始终跟踪由“足迹”对象定义的最后修改(它包含最后修改日期,以及其他几个字段;它们的更新由自定义 save() 触发。方法)。

有没有办法强制调用 Footprint.save()即使 update_fields不包含来自 Footprint 的任何字段?

最佳答案

而不是重写 save()方法,另一种可能性是使用 auto_now 添加所有字段update 的选项范围。像这样:

some_object.save(update_fields = ['updated_field', 'auto_now_date']

关于django - 使用 save(update_fields = […]) 时强制执行 auto_now,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17474057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com