【问题标题】:Django Signal on relation update关于关系更新的 Django Signal
【发布时间】:2016-11-27 19:43:18
【问题描述】:

我有类似的模型:

class Basket(model.Models):
    pass


class Item(models.Model):
    basket = models.ForeignKey(Basket, related_name='items')

我想用 Django Signal 捕捉 Basket.items 更新,但从篮子端,由于添加多个项目时调用信号一次。

如何使用信号捕获basket.items 关系更新?

谢谢

【问题讨论】:

    标签: python django django-signals


    【解决方案1】:

    您可以使用post_signal轻松获取购物篮中的商品对象

    class Basket(model.Models):
        pass
    
        @classmethod
        def item_added(self, **kargs):
            print karts['instance']
    
    
    class Item(models.Model):
        basket = models.ForeignKey(Basket, related_name='items')
    
    post_save.connect(Basket.item_added, sender=Item)
    

    【讨论】:

    • 为什么使用@classmethod 而不是实例方法,大多数时候可能会有点混乱
    猜你喜欢
    • 1970-01-01
    • 2014-03-02
    • 2012-12-22
    • 2014-11-21
    • 2018-12-14
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多