Django Singal如果已填充另一个模型,则填充一个模型

时间:2019-07-10 18:51:44

标签: django django-signals

我有一个带有两个应用程序的Django项目。一个是contact,另一个是contactus

我的联系方式是: project/contact/models.py下方:

from django.db import models

class ContactList(models.Model):
    phone = models.CharField(max_length=15)
    email = models.EmailField()

,我的联络人模型是: project/contactus/models.py下方:

from django.db import models

class ContactUs(models.Model):
    subject = models.CharField(max_length=50)
    phone = models.CharField(max_length=15)
    email = models.EmailField()
    message = models.TextField()

我想在ContactUs类通过用户输入获取数据的同时,将ContactUs的phoneemail填充到ContactList类中

我在两个应用程序中创建了两个signal.py文件,但是尝试丢失一些代码,但失败了。.我认为这对专家来说是最简单的任务。任何人都可以帮助我解决这个问题吗? / p>

1 个答案:

答案 0 :(得分:1)

由于要在将数据保存在const中时执行某些操作,因此应使用post_save信号,如下所示:

ContactUs

创建@receiver(post_save, sender=ContactUs) def add_to_list(sender, instance, created, **kwargs): if created: ContactList.objects.create(phone=instance.phone, email=instance.email 对象时,此信号将创建ContactList对象,并将ContactUs实例的phoneemail值分配给{ ContactUs对象的{1}}和phone字段。

有关Django信号的更多信息,请参见docs