1

我已经阅读了这个线程,它处理使 Django 注释在“用户”字段上使用 select_related() 从而减少不必要的 sql 查询的问题。

我最喜欢的建议是创建自己的评论模型并覆盖当前使用的管理器。

这就是我所拥有的:

#models.py
class LightCommentManager(CommentManager):
    def get_query_set(self):
        qs = (super(CommentManager, self).get_query_set().select_related('user'))
        return qs

class LightComment(Comment):
    objects = LightCommentManager()
    class meta:
        managed = False

这一切都很好,但是当我同步数据库时,Django 仍然为 LightComment 创建一个表。如果我要更改的只是经理,我真的需要这张表吗?如果 managed 设置为 false,为什么 Django 会创建它?

提前致谢,

4

1 回答 1

2

首先,应该调用您的内部类Meta,而不是meta.

但是managed = False,您应该使用proxy = True来表示您正在创建代理模型而不是另一个真实模型,而不是 。

于 2014-03-24T15:54:10.507 回答