2

当(代理模型的)实例由第三个应用程序隐式创建时,我无法找出为什么我的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

你知道问题出在哪里吗?

4

0 回答 0