保存后访问相关对象

时间:2016-11-25 13:56:35

标签: django django-models

我需要在保存答案后获得问题。

class Answer(models.Model):
    # ...

    def save(self, *args, **kwargs):

        super(Answer, self).save(*args, **kwargs)

        # I need to get question object here
        q = self.question.get()

和问题

class Question(models.Model):
    # ...
    answer = models.ForeignKey(Answer,
                               related_name='question',
                               blank=True,
                               null=True)

它们通过外键相关联。如果我尝试answer.question.get()我就知道它不存在。如果我试图通过answer_id得到问题,它就找不到任何问题,好像问题还没有更新(但我可以稍后再说)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一个问题可以有很多答案,因此从char *time2str(time_t time) { static_char *str_fmt = "%02d/%02d/%4d %02d:%02d"; char *time_s = ""; return time_s; } Question的1-M关系。因此,需要在Answer模型中定义ForeignKey

Answer

class Answer(models.Model): # ... question = models.ForeignKey(Answer, related_name='answers', blank=True, null=True) 方法中,只需访问此类属性save即可获得问题

question

并且class Answer(models.Model): # ... def save(self, *args, **kwargs): super(Answer, self).save(*args, **kwargs) q = self.question 也应始终为Answer,因此Question不应出现blank=True, null=True问题。