Tia*_*Liu 1 django django-signals django-orm
我有一个模型A,其中有一个名为的字段name。如何获取pre_save信号中的先前值和新值?
@receiver(pre_save, sender=A)
def signal_product_manage_latest_version_id(
sender, instance, update_fields=None, **kwargs):
if 'name' in update_fields:
print(instance.name)
Run Code Online (Sandbox Code Playgroud)
name当我调用以下代码时,是旧值还是新值?
a = A.objects.create(name="John")
a.name = "Lee"
a.save()
Run Code Online (Sandbox Code Playgroud)
从文档 中保存instance的实际实例。
您将得到旧实例的使用显式调用它的方法,
A.get()
@receiver(pre_save, sender=A)
def signal_product_manage_latest_version_id(sender, instance, update_fields=None, **kwargs):
try:
old_instance = A.objects.get(id=instance.id)
except A.DoesNotExist: # to handle initial object creation
return None # just exiting from signal
# your code to with 'old_instance'Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |