- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 django 中有一个 post 信号,我需要在其中访问一个字段的先前值:
post_save.connect(callback_function_postsave, sender=Media)
我知道理想情况下我应该为此使用 pre_save:
pre_save.connect(callback_function_presave, sender=Media)
def callback_function_presave(sender, instance,*args,**kwargs):
try:
old_value = sender.objects.get(pk=instance.pk).field
except sender.DoesNotExist:
return
但是,必须在 post_signal
中获取 old_value
,因为基于它,我必须决定是否进行第 3 方 api 调用。我无法在 pre_save
中进行 api 调用,因为 api 使用相同的数据库并期望提交更新的值。
我能想到的一种可能的方法是将 old_value 添加到实例本身,然后可以通过 post_save 访问它:
def callback_function_presave(sender, instance,*args,**kwargs):
try:
instance.old_value = sender.objects.get(pk=instance.pk).field
except sender.DoesNotExist:
return
def callback_function_postsave(sender, instance,*args,**kwargs):
try:
old_value = instance.old_value
except:
print "This is a new entry"
有没有更好的方法来实现这一点。
最佳答案
不幸的是 post_save 信号没有给你旧值 ( post_save )。因此,将旧值存储在模型上似乎是一个很好的解决方案。
我会这样写 pre_save:
def save_old_value(sender, instance, *args, **kwargs):
if instance.id:
instance.old_value = instance.__class__.objects.get(id=instance.id).old_value
关于python - 获取 post_save 信号中字段的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11843747/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!