使用相同模型发布和评论

时间:2010-05-25 09:48:59

标签: django django-models

我创建了一个简单的项目,每个人都可以创建一个或多个Blog。 我想将此模型用于Post和评论:

class Post_comment(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField(_('object ID'))
    content_object = generic.GenericForeignKey()

    # Hierarchy Field
    parent = models.ForeignKey('self', null=True, blank=True, default=None, related_name='children')

    # User Field
    user = models.ForeignKey(User)

    # Date Fields
    date_submitted = models.DateTimeField(_('date/time submitted'), default = datetime.now)
    date_modified = models.DateTimeField(_('date/time modified'), default = datetime.now)

    title = models.CharField(_('title'), max_length=60, blank=True, null=True)  
    post_comment = models.TextField(_('post_comment'))

如果是注释,则父项不为空。 因此,在大多数情况下,文本字段将包含一些文本。 我可以将此模型用于发布和评论吗? 这是一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

技术上可行,但听起来像是一个糟糕的解决方案。

您要投放的大多数查询特定于发布或评论(示例:按日期排序所有帖子以显示在博客索引页面上,获取5个最新帖子的标题到在小部件上显示,获取5条最新评论以显示在“最新评论”小部件中,获取特定帖子的所有评论,获取用户发布的所有帖子等。因此,将它们放在同一个表中的成本始终为.filter(parent=None),这意味着代码可读性较差,性能损失较小。