这个问题看起来很简单,但我很难找到答案:
当保存/更改带有外键的Django模型时,它们是否调用它们所指向的模型的save()方法?在
我正在研究一个SAT考试的模型,该模型用于SAT考试,评分和评分——最后一个涉及缓存和缓存失效——并试图找出何时必须删除缓存的分数对象并重新计算它。在
我有三个模型:ExamResponse、QuestionResponse和ExamScore,具体来说我们可以这样说:
class ExamResponse(models.Model):
user = models.ForeignKey(User)
exam = models.ForeignKey(Exam)
class QuestionResponse(models.Model):
exam_response = models.ForeignKey(ExamResponse)
answer = models.TextField()
score = models.smallIntegerField(default=0)
class ExamScore(models.Model):
exam_response = models.ForeignKey(ExamResponse)
score = models.smallIntegerField(default=0)
每当老师给一个问题回答打分(通过改变分数域),我想删除与问题回答的ExamResponse相关联的examStore。我能监听到一个ExamResponse对象的变化信号吗?在
^{pr2}$或者我必须倾听实际的问题回答才能保存下来吗?在
@receiver(post_save, model=QuestionResponse)
def invalidate_exam_response_stats(sender, **kwargs):
"""
Look up the QuestionResponse's ExamResponse, then delete
the associated ExamScore.
"""
回答:不,他们不这样做。在
我应该听QuestionResponse对象。在
谢谢@ozgur的回答。在
相关问题 更多 >
编程相关推荐