suh*_*kan 3 python django django-rest-framework
我正在使用django默认接收器来处理信号.但它不起作用.我已经在APP1中修改了用户模型,当新的用户对象在APP2中创建一个接收器时,signal.py正在收听它,但它无法正常工作.
class User(BaseModel, AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
username = models.CharField(max_length=40, unique=True)
first_name = models.CharField(max_length=30, blank=True, null=True)
last_name = models.CharField(max_length=30, blank=True, null=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
is_email_verified = models.BooleanField(default=False)
is_paid = models.IntegerField(default=0)
access_token = models.CharField(max_length=128, blank=True)
objects = UserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
class Meta:
db_table = 'users'
def __str__(self):
return self.email
Run Code Online (Sandbox Code Playgroud)
from django.conf import settings
from django.db.models.signals import post_save
from django.dispatch import receiver
from accounts.models import User
@receiver(post_save, sender=User)#settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
print ("token generated")
if created:
print("data at signal ****", instance.email, instance)
Run Code Online (Sandbox Code Playgroud)
suh*_*kan 12
最后,我得到了答案.因为我没有在启动时导入signal.py.
from __future__ import unicode_literals
from django.apps import AppConfig
class StreamsConfig(AppConfig):
name = 'streams'
def ready(self):
print("at ready")
import streams.signals
Run Code Online (Sandbox Code Playgroud)
default_app_config = 'streams.apps.StreamsConfig'
Run Code Online (Sandbox Code Playgroud)
在这个改变之后我收到了信号
| 归档时间: |
|
| 查看次数: |
3341 次 |
| 最近记录: |