我有一个信号——
@receiver(post_save, sender=User)
def create_initial_story(sender,instance, signal, created, **kwargs):
if created:
Story(user = instance, title = 'Random Stories',
description="Random stories",
is_closed = False, is_random = True).save()
这很酷,但我真的不想在我的 models.py 中有这个信号
它以某种方式“双重导入”,我宁愿这不会发生。是的,我知道阻止信号运行两次的魔术,但我就是不相信。为什么我的应用程序要做两倍的工作!疯狂的!
有人建议我使用django.db.models.get_model
,但我不知道该怎么做!我的尝试不太奏效 - 这是我尝试过的:
from django.db.models import get_model
@receiver(post_save, sendermodel('myapp','User'))
def create_initial_story(sender,instance, signal, created, **kwargs):
if created:
get_model('myapp','Story').(user = instance, title = 'Random Stories',
description="Random stories",
is_closed = False, is_random = True).save()
这会产生一个例外 -
无法分配“<故事:随机故事>”:“Story.user”必须是“用户”实例。
所以!我能做些什么来解决这个问题?