Django - 模型是否需要自己的表,如果它继承只是为了改变经理?

Django - 模型是否需要自己的表,如果它继承只是为了改变经理?

问题描述:

我读过这个thread,它处理Django注释的问题,在“user”字段上使用select_related(),从而减少了不必要的sql查询。Django - 模型是否需要自己的表,如果它继承只是为了改变经理?

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

这是我有:

#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来表示您正在创建代理模型而不是另一个真实模型。