fabiocaccamo / django-treenode

:deciduous_tree: probably the best abstract model/admin for your tree based stuff.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UUID primary keys don't work

cperrin88 opened this issue · comments

Python version
3.9

Django version
3.2.4

Package version
0.16.0

Current behavior (bug description)
If the primary key of a model is a UUID field the plugin doesn't work.

Traceback

Traceback (most recent call last):
  File "<venv>\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "<venv>\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "<venv>\lib\site-packages\django\contrib\admin\options.py", line 616, in wrapper
    return self.admin_site.admin_view(view)(*args, **kwargs)
  File "<venv>\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "<venv>\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "<venv>\lib\site-packages\django\contrib\admin\sites.py", line 232, in inner
    return view(request, *args, **kwargs)
  File "<venv>\lib\site-packages\django\contrib\admin\options.py", line 1660, in change_view
    return self.changeform_view(request, object_id, form_url, extra_context)
  File "<venv>\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "<venv>\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "<venv>\lib\site-packages\django\contrib\admin\options.py", line 1540, in changeform_view
    return self._changeform_view(request, object_id, form_url, extra_context)
  File "<venv>\lib\site-packages\django\contrib\admin\options.py", line 1586, in _changeform_view
    self.save_model(request, new_object, form, not add)
  File "<venv>\lib\site-packages\django\contrib\admin\options.py", line 1099, in save_model
    obj.save()
  File "<venv>\lib\site-packages\django\db\models\base.py", line 726, in save
    self.save_base(using=using, force_insert=force_insert,
  File "<venv>\lib\site-packages\django\db\models\base.py", line 774, in save_base
    post_save.send(
  File "<venv>\lib\site-packages\django\dispatch\dispatcher.py", line 180, in send
    return [
  File "<venv>\lib\site-packages\django\dispatch\dispatcher.py", line 181, in <listcomp>
    (receiver, receiver(signal=self, sender=sender, **named))
  File "<venv>\lib\site-packages\treenode\signals.py", line 36, in post_save_treenode
    sender.update_tree()
  File "<venv>\lib\site-packages\treenode\models.py", line 371, in update_tree
    objs_data = cls.__get_nodes_data()
  File "<venv>\lib\site-packages\treenode\models.py", line 446, in __get_nodes_data
    objs_data_dict = {str(obj.pk):obj.__get_node_data(objs_list, objs_dict) for obj in objs_list}
  File "<venv>\lib\site-packages\treenode\models.py", line 446, in <dictcomp>
    objs_data_dict = {str(obj.pk):obj.__get_node_data(objs_list, objs_dict) for obj in objs_list}
  File "<venv>\lib\site-packages\treenode\models.py", line 417, in __get_node_data
    order_strs = [obj.__get_node_order_str() for obj in order_objs]
  File "<venv>\lib\site-packages\treenode\models.py", line 417, in <listcomp>
    order_strs = [obj.__get_node_order_str() for obj in order_objs]
  File "<venv>\lib\site-packages\treenode\models.py", line 394, in __get_node_order_str
    pk_val = min(self.pk, priority_max)
TypeError: '<' not supported between instances of 'int' and 'UUID'

Fixed in 0.17.0 version.