对于https://developer.ubuntu.com我们使用Django CMS 3.0.6(mptt),我们对它非常满意。
最近我们为我们添加了从项目的bzr分支导入降价文档的功能,所以我们可以在我们感兴趣的一些上游项目发生变化时让cronjobs更新文章。我花了一些时间来完成它,但我们得到了它的工作。本地我使用sqlite(默认)并且很高兴。一旦将其部署到分段,导入也会起作用,但是脚本添加或更新的文章最终会出现在文章树中的不同位置。一段时间后,我可以通过本地postgres安装重现这一点。
我们目前正在此处跟踪此问题:https://bugs.launchpad.net/developer-ubuntu-com/+bug/1506861
我有点迷失,不太懂得如何调试。
我为此准备了一个测试用例,它基本上是:
<%
}
else
{
response.sendRedirect("index.jsp");
return; //this is to redirect immediately so it doesn't
//run any code below this point before redirecting
}
%>
然后将类似http://pastebin.ubuntu.com/12798510/的差异应用于developer_portal / settings.py并运行
$ bzr branch lp:~developer-ubuntu-com-dev/developer-ubuntu-com/debug-md-importer
$ cd debug-md-importer
$ virtualenv ./env
$ ./env/bin/pip install -r requirements.txt
$ ./env/bin/pip install django psycopg2
要查看操作中的问题,请运行:
$ sudo apt install python-pip python-dev libpq-dev postgresql postgresql-contrib
$ sudo -u postgres psql -c "CREATE USER developerportal_user WITH PASSWORD '123abc';"
在postgres设置和
$ ./postgres-retry.sh
在sqlite设置中。
脚本将从头开始创建一个新的数据库,使用调试消息运行导入程序并为您运行runserver,这样您就可以轻松地在页面列表中检查结构的更改方式。
目前的状况: sqlite很好,postgres的文章树搞砸了。
此问题的所有相关代码都可以在developer_portal / management / commands / import-external-docs-branches.py中找到
如果有人能给我一个指针,那就非常感激了。
提前多多感谢。
祝你有美好的一天, 丹尼尔
答案 0 :(得分:3)
我从http://bazaar.launchpad.net/~developer-ubuntu-com-dev/developer-ubuntu-com/debug-md-importer/view/head:/requirements.txt#L18看到你在django CMS 3.0.6上,这意味着你正在使用Django MPTT。
一般来说,人们在django CMS中遇到的大多数树问题在移动后都被证明是与Django MPTT相关的腐败。
如果您还没有这样做,可以尝试以下方法之一:
django-mptt==0.6.1
尝试最新版本的https://github.com/django-mptt/django-mptt manage.py cms fix-mptt
命令