Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"NodeAlreadySaved " error when using djangocms publishing page changes

Encounter an error when using djangocms publishing page changes.

when I ran tail -f /var/log/apache2/error.log, it returned:

treebeard.exceptions.NodeAlreadySaved: Attempted to add a tree node that is already in the database, referer: http://47.95.254.172/?edit

And when I allowed the settings.py DEBUG= True and click the 'Publish page changes' button:

NodeAlreadySaved at /admin/cms/page/1/en/publish/
Attempted to add a tree node that is already in the database
Request Method: POST
Request URL:    http://47.95.254.172/admin/cms/page/1/en/publish/
Django Version: 3.1.7
Exception Type: NodeAlreadySaved
Exception Value:    Attempted to add a tree node that is already in the database
Exception Location: /root/env1/lib/python3.8/site-packages/treebeard/mp_tree.py, line 326, in process
Python Executable:  /root/env1//bin/python
Python Version: 3.8.5

I have run python manage.py cms fix-tree but it did not work. While python manage.py cms check returned 10 checks successful!.

I deployed the djangocms project with:

apache2.4.41

mod-wsgi 4.8.0

django 3.1.7

django-cms 3.8.0

The python version in venv is 3.8.5, and mod-wsgi was compiled by python3.8.5 in the venv.

Thank you for the help!

like image 429
jpx Avatar asked Mar 24 '21 08:03

jpx


2 Answers

Downgrade to django-treebeard version below 4.5.1, e.g. 4.4. Version 4.5.1 seems to be incompatible.

pip install django-treebeard==4.4
like image 117
buguser Avatar answered Oct 26 '22 20:10

buguser


You can also modify the requirements.txt file to reflect a different django-treebeard version that is not 4.5.1:

django-treebeard>=4.0,!=4.5.1

Then you can run:

pip install -r requirements.txt
like image 21
slybloty Avatar answered Oct 26 '22 18:10

slybloty