def create_placeholder()

in gnm_deliverables/models.py [0:0]


    def create_placeholder(self, user, commit=True):
        """
        requests Vidispine to create a placeholder item for this deliverable, if it does not have an ID on it.
        if the deliverable does already have an item id, this is a no-op.
        this is automatically called from start_file_import, so you don't need to call it directly.
        :param user: (string) user to run the request as
        :param commit: if True, save the deliverable to the database immediately (default true)
        :return: None
        """
        if not isinstance(user, str):
            raise TypeError("create_placeholder user must be a string, got a {0}".format(user.__class__.__name__))

        if self.online_item_id is None:
            new_item = VSItem(url=settings.VIDISPINE_URL,
                              user=settings.VIDISPINE_USER,
                              passwd=settings.VIDISPINE_PASSWORD,
                              run_as=user)

            builder = new_item.get_metadata_builder()
            builder.addMeta({
                "title": self.get_name()
            })
            builder.addGroup("Asset",{
                "gnm_category": "Deliverable",
                "original_filename": self.absolute_path,
                "gnm_owner": user,
                "gnm_containing_projects": str(self.deliverable.pluto_core_project_id),
                "gnm_file_created": self.modified_dt
            })
            builder.addGroup("Deliverable", {
                "gnm_deliverable_bundle": str(self.deliverable.pluto_core_project_id),
                "gnm_deliverable_id": str(self.id)
            })
            new_item.createPlaceholder(builder.as_xml().decode("utf8"))

            if commit:
                self.save()
            return new_item