我有两种模式:
class Object(models.Model):
object = models.CharField()
price = models.DecimalField()
class History(models.Model):
date = models.DateTimeField()
object= models.ForeignKey(Object)
price = models.DecimalField()
当我创建新的历史记录条目时,我想将实际价格从对象复制到历史记录模型。
我怎样才能做到这一点?需要我在视图中使用特定方法吗?
答案 0 :(得分:0)
您可以使用Django的post-save signal:
创建信号接收器:
# models.py
def history_add_price(sender, instance, **kwargs):
if not instance.price and instance.object and instance.object.price:
instance.price = instance.object.price
instance.save()
return True
注册信号:
# models.py
from django.db import models
models.signals.post_save.connect(history_add_price, sender=History, dispatch_uid="add_price_post_save", weak=False)