def METHOD_NAME(self, user):
    """
    Identifies possible parent pages for the current user by first looking
    at allowed_parent_page_models() on self.model to limit options to the
    correct type of page, then checking permissions on those individual
    pages to make sure we have permission to add a subpage to it.
    """
    # Get queryset of pages where this page type can be added
    allowed_parent_page_content_types = list(
        ContentType.objects.get_for_models(
            *self.model.allowed_parent_page_models()
        ).values()
    )
    allowed_parent_pages = Page.objects.filter(
        content_type__in=allowed_parent_page_content_types
    )
    # Get queryset of pages where the user has permission to add subpages
    if user.is_superuser:
        pages_where_user_can_add = Page.objects.all()
    else:
        pages_where_user_can_add = Page.objects.none()
        perms = {
            perm
            for perm in PagePermissionPolicy().get_cached_permissions_for_user(user)
            if perm.permission.codename == "add_page"
        }
        for perm in perms:
            # user has add permission on any subpage of perm.page
            # (including perm.page itself)
            pages_where_user_can_add |= Page.objects.descendant_of(
                perm.page, inclusive=True
            )
    # Combine them
    return allowed_parent_pages & pages_where_user_can_add