【发布时间】:2017-08-24 10:41:12
【问题描述】:
我正在使用 django 默认接收器来处理信号。但它不工作。 当新的用户对象在 APP2 中创建接收器 signal.py 正在收听它时,我已经修改了 APP1 中的用户模型,但它不起作用。
app1/model.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
app2/signals.py
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)
【问题讨论】:
-
@brunodesthuilliers 通过管理员创建用户
-
呃?您确定您创建的用户是
account.models.User实例,而不是django.contrib.auth.models.User实例吗?另外,你确定app2.signals是在启动时导入的吗? -
@brunodesthuilliers app2.signals is not importd in startup 如何在 django 1.10 中执行此操作
-
@brunodesthuilliers 如何在启动时导入它
标签: python django django-rest-framework