Django-如果模型仅为更改管理器而继承,那么它是否需要自己的表?

Django-如果模型仅为更改管理器而继承,那么它是否需要自己的表?,django,django-models,django-inheritance,Django,Django Models,Django Inheritance,我读过这篇文章,它讨论了让Django注释在“user”字段上使用select_related()的问题,从而减少了不必要的sql查询 我最喜欢的建议是创建自己的评论模型,并覆盖当前使用的管理器 这就是我所拥有的: #models.py class LightCommentManager(CommentManager): def get_query_set(self): qs = (super(CommentManager, self).get_query_set().s

我读过这篇文章,它讨论了让Django注释在“user”字段上使用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
这一切都很好,但当我使用syncdb时,Django仍然为LightComment创建一个表。如果我要更改的只是管理器,那么我真的需要这个表吗?如果managed设置为false,Django为什么要创建它


提前感谢,

首先,您的内部类应该称为
Meta
,而不是
Meta

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