因为我正在使用自己的身份验证和授权系统(使用我自己的用户/权限模型),所以我想从Django
完全禁用此标准应用。
我尝试删除MIDDLEWARE_CLASSES
和INSTALLED_APPS
中的相关行
INSTALLED_APPS = (
'django.contrib.sessions',
'form_utils',
'org',
'auth',
'entities',
)
,但是当我使用syncdb命令时,默认表
默认身份验证系统附带的仍然存在
创建。有没有办法防止这种情况发生?我的主要问题是标准表覆盖了我想用于我自己的auth系统的表。
{{1}}
我也尝试使用项目包预先添加应用程序,这没有效果。
我可能会忽略另一种设置吗?其他可能 尽管可能导致这些标准应用程序启用的变量 我的努力?
我也不使用内置的管理系统,所以我不这么认为 可能是个问题。
其他信息:我最近将Django 1.2升级到1.3。这可能是我问题的原因吗?
编辑:显然,这个问题是由Django 1.3的变化引起的。相关票证在此处:http://code.djangoproject.com/ticket/15735
任何提示?
答案 0 :(得分:6)
我相信认证模块是由RequestContext引入的。
默认情况下,TEMPLATE_CONTEXT_PROCESSORS设置包括django.contrib.auth.context_processors.auth。
我没有django创建auth数据库表的问题,但它是在我的上下文中插入AnonymousUser对象而在'user'键下我的会话,即使我从我的INSTALLED_APPS中删除了auth模块和MIDDLEWARE_CLASSES设置。
我从TEMPLATE_CONTEXT_PROCESSORS中删除了该项目,并且事情开始按照我期望的方式工作。
在你的情况下从1.2升级到1.3可能意味着你开始使用基于类的通用视图(这很棒),或者你可能开始使用RequestContext而不是普通的上下文dicts。无论哪种方式,似乎当auth作为上下文处理器给出时,django表现得好像auth在你安装的应用程序中,无论你是否真的想要它。
我希望这是有帮助的。