Django模型关系的最佳实践

时间:2014-05-16 20:44:31

标签: python django django-models

我正在使用Django网站,用户可以将草案法律添加到“观察列表”中,以便通知草案状态更改。目前我有两个模型由多对多关系连接:

class DraftLaw(models.Model):
    '''some atributes and methods'''

class UserProfile(models.Model):
    user = models.OneToOne(User)
    '''some atributes and methods'''

虽然,我想允许用户添加评论,仅对他们可见,特定的草稿,他们正在观看。我唯一的想法是添加另一个类CommentToDraft,它将通过外键与DraftLaw和UserProfile类相关联,并通过过滤器访问它,尽管看起来,这在效率方面是不好的做法。 创建此类功能的最佳做法是什么?

2 个答案:

答案 0 :(得分:0)

你的想法没问题。如果您想要更灵活的内容,我建议您使用contenttypes。我总是用它们来评论和附件。

答案 1 :(得分:0)

您的想法非常好,但如果您关心效率,请考虑自定义身份验证。我的意思是删除models.OneToOne并使用this解决方案。

访问' UserProfile'可以花费一些额外的查询。使用AbstractBaseUser您可以避免这种情况。

设置此解决方案非常简单:)