【发布时间】:2020-06-23 03:21:09
【问题描述】:
我正在尝试创建一个简单的信号,以便在用户注册新帐户后为用户创建 Profile 对象。我错过了什么?
信号.py
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profile
#from django_cleanup.signals import cleanup_pre_delete
#from sorl.thumbnail import delete
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance, bio="", linkedin_URL="", isCoach=False)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
# def sorl_delete(**kwargs):
# delete(kwargs['file'])
# cleanup_pre_delete.connect(sorl_delete)
apps.py
from django.apps import AppConfig
class EventsConfig(AppConfig):
name = 'events'
def ready(self):
import events.signals
【问题讨论】:
-
应用名称是“事件”吗?我的意思是您在哪个应用程序中使用 singals.py ?
-
没错。应用“事件”包含具有 Profile 模型的 model.py
-
试试
from . import signals。另外你不需要两个方法,删除第二个。 -
加了那个导入删除了第二种方法,没用