为什么我的 SIGNAL 在 Django 中不起作用——我做错了什么?
Why is my SIGNAL not working in Django - what I'm doing wrong?
首先,我不是开发人员。
尝试使用 Django(版本 3.1.2)构建应用程序,但遇到一些信号问题。
我的models.py
中有这个模型:
class PhoneNumbers(models.Model):
number = models.CharField(_('Category'), max_length=255)
created = models.DateTimeField(_('Created'), auto_now_add=True, blank=True)
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
和一个模特Persons
class Persons(models.Model):
name = models.CharField(_('Name'), max_length=255)
number = models.CharField(_(Number), max_length=255)
...
我的signals.py
中的代码:
from django.db.models.signals import pre_save, post_delete, post_save
from django.dispatch import receiver
from .models import PhoneNumbers, Persons
@receiver(post_save, sender=Persons)
def save_contract(instance, sender, created, **kwargs):
print("Request finished!")
当我保存一个人时,我希望在控制台输出中得到一个 PRINT,但什么也得不到。怎么了?
我也在__init__.py
中添加:
default_app_config = 'myapp.apps.MyAppConfig'
我的 apps.py 看起来像:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
您没有加载信号模块。您可以在 MyAppConfig
:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
def <b>ready</b>(self):
import <b>apps</b>.signals # noqa
此外,信号不适用于批量更新。
首先,我不是开发人员。
尝试使用 Django(版本 3.1.2)构建应用程序,但遇到一些信号问题。
我的models.py
中有这个模型:
class PhoneNumbers(models.Model):
number = models.CharField(_('Category'), max_length=255)
created = models.DateTimeField(_('Created'), auto_now_add=True, blank=True)
uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
和一个模特Persons
class Persons(models.Model):
name = models.CharField(_('Name'), max_length=255)
number = models.CharField(_(Number), max_length=255)
...
我的signals.py
中的代码:
from django.db.models.signals import pre_save, post_delete, post_save
from django.dispatch import receiver
from .models import PhoneNumbers, Persons
@receiver(post_save, sender=Persons)
def save_contract(instance, sender, created, **kwargs):
print("Request finished!")
当我保存一个人时,我希望在控制台输出中得到一个 PRINT,但什么也得不到。怎么了?
我也在__init__.py
中添加:
default_app_config = 'myapp.apps.MyAppConfig'
我的 apps.py 看起来像:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
您没有加载信号模块。您可以在 MyAppConfig
:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
def <b>ready</b>(self):
import <b>apps</b>.signals # noqa
此外,信号不适用于批量更新。