简体   繁体   English

如何使用Django Signals?

[英]How to use Django Signals?

I'm practicing Signals, I have two models 我正在练习信号,我有两个模型

models.py models.py

class National_ID_Card(models.Model):
    name = *************
    ID = *************
    address = *************
    state = *************
    nation = **********

    def __str__(self):
        return self.name



class Driving_Licence(models.Model):
    name = *************
    ID = *************
    vehicle_type = **********
    callahan   = ***********

    def __str__(self):
        return self.name

forms.py 表格

class NationalIDForm(forms.ModelForm):
    class Meta:
        model = National_ID_Card
        fields = ('__all__')

class DrivingLicenceForm(forms.ModelForm):
    class Meta:
        model = Driving_Licence
        fields = ('__all__')

I want when i will be saving instance of National_ID_Card it would populate the name and ID field of Driving_Licence from also. 我想在保存National_ID_Card实例时也从中填充Driving_LicencenameID字段。 I can do so with overriding method of save but how to do so in django signals? 我可以使用overriding method of save来执行此操作,但是如何在Django信号中执行此操作? I tried many examples but cannt able to figure it out. 我尝试了许多示例,但无法弄清楚。

You can do it in a couple of ways: 您可以通过以下两种方式进行操作:

from django.db.models.signals import post_save

def your_signal_fuction(sender, instance, **kwargs):
    # Your code goes here

post_save.connect(your_signal_fuction, sender=National_ID_Card)

Using receiver decorator 使用接收器装饰器

from django.db.models.signals import post_save
from django.dispatch import receiver

@receiver(post_save, sender=National_ID_Card)
def your_signal_fuction(sender, instance, **kwargs):
    # Your code goes here

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM