Django - 信号。简单的例子开始

新手上路,请多包涵

我是 Django 的新手,我无法理解如何使用 Django 信号。谁能用简单的例子解释“ Django 信号”?

提前致谢。

原文由 Wickkiey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 345
1 个回答

通过进行非常小的研究,您可以在 Internet 上找到关于 django 信号的非常好的内容。

在这里,我将非常简要地向您解释 Django 信号。

什么是 Django 信号?

信号允许某些发送者通知一组接收者某些动作已经发生

动作:

调用模型的 save() 方法。

django.db.models.signals.pre_save | post_save

模型的 delete() 方法被调用。

django.db.models.signals.pre_delete | 删除删除后

模型上的 ManyToManyField 已更改。

django.db.models.signals.m2m_changed

Django 启动或完成 HTTP 请求。

django.core.signals.request_started |请求完成

所有信号都是 django.dispatch.Signal 实例。

非常基本的例子:

模型.py

 from django.db import models
from django.db.models import signals

def create_customer(sender, instance, created, **kwargs):
    print "Save is called"

class Customer(models.Model):
    name = models.CharField(max_length=16)
    description = models.CharField(max_length=32)

signals.post_save.connect(receiver=create_customer, sender=Customer)

In [1]: obj = Customer(name='foo', description='foo in detail')

In [2]: obj.save()
Save is called

原文由 Prashant Gaur 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏