Fields and forms¶
There are a number of field classes for conveniently using FileNode
objects
in your own Django applications.
The following example model contains a ForeignKey
field linking to a
FileNode
object that is associated to a document file. Notice the parameters
specifying which media types will be validated, and which should be visible in
the widget:
from media_tree.fields import FileNodeForeignKey
from media_tree import media_types
from media_tree.models import FileNode
from django.db import models
class MyModel(models.Model):
document = FileNodeForeignKey(allowed_media_types=(media_types.DOCUMENT,),
null=True, limit_choices_to={'media_type__in':
(FileNode.FOLDER, media_types.DOCUMENT)})
The following example model will allow the user to select a FileNode
object
associated to an image file:
from media_tree.fields import ImageFileNodeForeignKey
from django.db import models
class MyModel(models.Model):
image_node = ImageFileNodeForeignKey(null=True)
The following example form will allow the user to select files that are under a specific parent folder named “Projects”:
from media_tree.models import FileNode
from media_tree.forms import FileNodeChoiceField
from django import forms
class MyForm(forms.Form):
file_node = FileNodeChoiceField(queryset=FileNode.objects.get(
name="Projects", node_type=FileNode.FOLDER).get_descendants())
For your own applications, the following field classes are available: