圆形模型参考

时间:2018-02-02 22:26:20

标签: django model

我不太确定采用以下方法的最佳/惯用方法:

我有一个名为 BlogPost 的模型和一个名为 BlogPostContent 的模型。 BlogPost有一个名为 CurrentContent 的字段,该字段引用BlogPostContent表中的相关记录。 BlogPostContent有一个名为 Post 的外键字段,引用其相关的BlogPost。

修改博客后,会创建一个新的BlogPostContent记录,并更新BlogPost,使其 CurrentContent 字段引用最新的BlogPostContent。我这样做是为了提供一种方法来回滚并指定任何 BlogPostContent 记录来使用 CurrentContent < / EM>

CurrentContent 可以引用与其相关的任何BlogPostContent记录。

如果我在代码中对此进行建模,那将是:

class BlogPostContent {
   //Content
}

class BlogPost {
  BlogPostContent currentPost;
  List<BlogPostContent> contentHistory;
}

1 个答案:

答案 0 :(得分:1)

您的内容历史记录需要从[{1}}返回BlogPost的外键。

BlogPostContent

然后,您可以从博客文章实例访问历史记录或当前帖子,如下所示:

class BlogPostContent(models.Model):
    blog_post = models.ForeignKey('BlogPost', related_name='content_history')

class BlogPost(models.Model):
    current_post = models.ForeignKey('BlogPostContent')