'Persist the Document form, and return the saved Document.'

def save(self, parent_doc, **kwargs):

    doc = super(DocumentForm, self).save(commit=False, **kwargs)
    doc.parent = parent_doc
    if (not doc.needs_change):
        doc.needs_change_comment = ''
    doc.save()
    if ((doc.category in settings.IA_DEFAULT_CATEGORIES) and (not doc.share_link)):
        add_short_links.delay([doc.pk])
    self.save_m2m()
    if parent_doc:
        doc.products.remove(*[p for p in doc.products.all()])
    return doc
