<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_version_model(self, task, releasetype, descriptor):
 """Create and return a new model that represents taskfiles for the given task, releasetpye and descriptor :param task: the task of the taskfiles :type task: :class:`djadapter.models.Task` :param releasetype: the releasetype :type releasetype: str :param descriptor: the descirptor :type descriptor: str|None :returns: the created tree model :rtype: :class:`jukeboxcore.gui.treemodel.TreeModel` :raises: None """

        rootdata = treemodel.ListItemData(['Version', 'Releasetype', 'Path'])
        rootitem = treemodel.TreeItem(rootdata)
        for tf in task.taskfile_set.filter(releasetype=releasetype, descriptor=descriptor).order_by('-version'):
            tfdata = djitemdata.TaskFileItemData(tf)
            tfitem = treemodel.TreeItem(tfdata, rootitem)
            for note in tf.notes.all():
                notedata = djitemdata.NoteItemData(note)
                treemodel.TreeItem(notedata, tfitem)
        versionmodel = treemodel.TreeModel(rootitem)
        return versionmodel