'Find the nearest DocumentZone, if there is one, starting from this
document and going upwards via topic parents.'

def fetch(self, pk):

    from .models import Document, DocumentZone
    get_parent_id = Document.admin_objects.values_list('parent_topic', flat=True).get
    while pk:
        try:
            return DocumentZone.objects.get(document=pk)
        except DocumentZone.DoesNotExist:
            pk = get_parent_id(pk=pk)
    return self.empty()
