Django forms widget that uses Fancytree to display tree data
Project description
Django Fancytree Widget
----------------------
django-fancytree provides a widget using the fancytree js library to
render a forms.ModelMultipleChoiceField as a tree with selectable and
collapsable nodes.
See included project 'treewidget' as an example. Widget is used in
ModelMultipleChoiceField and allows user to select multiple categories.
Requirements
------------
django, django-mptt, jquery, jquery-ui
Usage
-----
::
from fancytree.widgets import FancyTreeWidget
categories = Category.objects.order_by('tree_id', 'lft')
class CategoryForm(forms.Form):
categories = forms.ModelMultipleChoiceField(
queryset=categories,
widget=FancyTreeWidget(queryset=categories)
)
In this example Category is a model registered with django-mptt.
Widget accepts **queryset** option, which expects pre-ordered queryset by
"tree_id" and "lft".
If you want to adjust tree data creation, you can define 'get_doc' method on
your model. Example:
::
def get_doc(self, values):
doc = {"title": name, "key": self.pk}
if str(self.pk) in values:
doc['select'] = True
doc['expand'] = True
return doc
----------------------
django-fancytree provides a widget using the fancytree js library to
render a forms.ModelMultipleChoiceField as a tree with selectable and
collapsable nodes.
See included project 'treewidget' as an example. Widget is used in
ModelMultipleChoiceField and allows user to select multiple categories.
Requirements
------------
django, django-mptt, jquery, jquery-ui
Usage
-----
::
from fancytree.widgets import FancyTreeWidget
categories = Category.objects.order_by('tree_id', 'lft')
class CategoryForm(forms.Form):
categories = forms.ModelMultipleChoiceField(
queryset=categories,
widget=FancyTreeWidget(queryset=categories)
)
In this example Category is a model registered with django-mptt.
Widget accepts **queryset** option, which expects pre-ordered queryset by
"tree_id" and "lft".
If you want to adjust tree data creation, you can define 'get_doc' method on
your model. Example:
::
def get_doc(self, values):
doc = {"title": name, "key": self.pk}
if str(self.pk) in values:
doc['select'] = True
doc['expand'] = True
return doc
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django-fancytree-0.3.0.tar.gz
(360.4 kB
view details)
File details
Details for the file django-fancytree-0.3.0.tar.gz
.
File metadata
- Download URL: django-fancytree-0.3.0.tar.gz
- Upload date:
- Size: 360.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e10b4f65303cef171eab6368cdd671055e830d227895dacff00ef2e5740bf69 |
|
MD5 | 45c95d8e444112f92986577e3eead9a5 |
|
BLAKE2b-256 | 03c8d025c485535541e0f1f6e7f7304d8fa8234c7050c40a6ef757b63fb65322 |