当(代理模型的)实例由第三个应用程序隐式创建时,我无法找出为什么我的signal
不起作用。
Django-Quiz
我在我的项目中使用第三方应用程序。有一个模型叫Sitting
. 由于我想在 admin 中查看表格,我必须创建一个proxy
模型,QuizSittingProxy
以便能够为.__str__
__unicode__
Sitting
每次User
进行测验时,都会创建新Sitting
对象。也分别QuizSittingProxy
创建了对象。
class QuizSittingProxy(Sitting):
"""
Holds information about taken Language Tests (in admin)
"""
class Meta:
proxy = True
def __str__(self):
return '{}: {}, score: {}'.format(self.user.username, self.quiz.title, self.current_score)
我想将测验的结果分配给当前User
,所以我创建了一个signal
.
问题是,这仅在我在管理员中手动signal
创建对象时才有效。QuizSittingProxy
值得一提的是,它是在每次User
测验时创建的。
@receiver(post_save,sender=QuizSittingProxy)
def assign_level(sender, instance, created, **kwargs):
print 'QUIZSITTING POST SAVE'
# user = instance.user
# quiz = instance.quiz
# score = len(instance.user_answers.keys()) / instance.current_score
你知道问题出在哪里吗?