Tôi mới dùng django và tôi không thể hiểu cách làm việc với tín hiệu django. Bất cứ ai có thể vui lòng giải thích "tín hiệu django" với các ví dụ đơn giản?Django - tín hiệu. Ví dụ đơn giản để bắt đầu
Thanks in advance ..
Tôi mới dùng django và tôi không thể hiểu cách làm việc với tín hiệu django. Bất cứ ai có thể vui lòng giải thích "tín hiệu django" với các ví dụ đơn giản?Django - tín hiệu. Ví dụ đơn giản để bắt đầu
Thanks in advance ..
Bạn có thể tìm nội dung rất tốt về tín hiệu django qua Internet bằng cách thực hiện nghiên cứu rất nhỏ.
Ở đây tôi sẽ giải thích cho bạn rất ngắn gọn về tín hiệu Django.
Tín hiệu Django là gì?
Tín hiệu cho phép người gửi nhất định để thông báo cho một tập hợp các máy thu mà một số hành động đã diễn ra
Actions: Phương pháp
mô hình của tiết kiệm() được gọi.
django.db.models.signals.pre_save | post_save
Phương thức delete() của mô hình được gọi.
django.db.models.signals.pre_delete | post_delete
ManyToManySửa đổi trên mô hình được thay đổi.
django.db.models.signals.m2m_changed
Django bắt đầu hoặc kết thúc yêu cầu HTTP.
django.core.signals.request_started | request_finished
Tất cả các tín hiệu đều là django.dispatch.Signal instances.
models.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(create_customer, sender=Customer)
Shell
In [1]: obj = Customer(name='foo', description='foo in detail')
In [2]: obj.save()
Save is called
Ngoài các Giải thích do Prashant, bạn cũng có thể sử dụng nhận trang trí hiện diện trong mô-đun django.dispatch.
ví dụ:
from django.db import models
from django.db.models import signals
from django.dispatch import receiver
class Customer(models.Model):
name = models.CharField(max_length=16)
description = models.CharField(max_length=32)
@receiver(signals.pre_save, sender=Customer)
def create_customer(sender, instance, created, **kwargs):
print "customer created"
Để biết thêm thông tin, tham khảo liên kết đưa ra dưới đây: - https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html
Bạn có thể cụ thể hơn? Sách hướng dẫn có một vài ví dụ đã có: https://docs.djangoproject.com/en/1.7/topics/signals/ – Wolph