全新的django。我们有一个使用django 0.96x的传统django项目,它执行身份验证,ldap等,而且它非常复杂,因此我们不想重写该代码。
我们想添加一个论坛解决方案(现成的),但到目前为止我所看到的所有解决方案都需要django 1.x
我正在试图弄清楚如何使这个工作,我已将其缩小到以下几点:
但是选项#3会起作用吗?我不太了解django.contrib.auth和朋友是如何工作的,所以如果我运行两个不同版本的django,用户是否会保持登录状态?我没有提到试图修补我们的0.96项目将它带到1.x但是我们没有时间去做。
有什么建议吗?
答案 0 :(得分:1)
这是可能的,但选择#3可能会非常痛苦。
选项4怎么样:咬紧牙关并升级到Django 1.1.1。我用几个0.97pre网站做了这个,花的时间比我想象的要少。最大的痛苦是处理管理员的事情。我们只是将Admin类直接放在Model类下面而不是单独的admin.py
文件。
我使用Mercurial作为我的DVCS,我只是克隆,黑客攻击,合并并且有效。每个站点花了大约3-5个小时,其中包括一些自定义模板标签。
答案 1 :(得分:0)
使用会话存储用户的登录状态。从比较中继到0.96源可以看出,会话以相同的方式提交给cookie,auth以相同的方式存储用户ID和后端,因此只要这两个应用使用相同的会话存储和在同一个域上,它应该工作。 (为了安全起见,我不会使用安全cookie,以防后端逻辑发生变化 - 我没有查看该部分。)
然而,0.96没有像现代Django那样的可插拔会话商店。可能,为了使当前版本的Django能够与你的0.96个会话一起工作,你需要为当前连接到0.96数据库并在那里操作会话的Django编写一个会话后端。不过,我不确定这会有多好。
答案 2 :(得分:0)
可以将Django 0.96表暴露给1.1 - 您可以使用围绕数据库VIEW的非托管模型。换句话说,你发出:
从django096db.auth_user创建视图auth_user AS SELECT *; (和其他表格类似的cmd)
然后你让Django 1.1与0.96同步(假设0.96表与1.1兼容,我没有检查过。)