'The \'change\' admin view for the Page model.'

def change_view(self, request, object_id, form_url='', extra_context=None):

    if (extra_context is None):
        extra_context = {'basic_info': True}
    try:
        obj = self.model.objects.get(pk=object_id)
    except self.model.DoesNotExist:
        obj = None
    else:
        context = {'page': obj, 'CMS_PERMISSION': get_cms_setting('PERMISSION'), 'can_change': self.has_change_permission(request, obj=obj), 'can_change_permissions': self.has_change_permissions_permission(request, obj=obj)}
        context.update((extra_context or {}))
        extra_context = self.update_language_tab_context(request, obj, context)
    if (('advanced_settings' in extra_context) or ('basic_info' in extra_context)):
        _has_advanced_settings_perm = self.has_change_advanced_settings_permission(request, obj=obj)
        extra_context['can_change_advanced_settings'] = _has_advanced_settings_perm
    tab_language = get_language_from_request(request)
    extra_context.update(self.get_unihandecode_context(tab_language))
    response = super(PageAdmin, self).change_view(request, object_id, form_url=form_url, extra_context=extra_context)
    if (tab_language and (response.status_code == 302) and (response._headers['location'][1] == request.path_info)):
        location = response._headers['location']
        response._headers['location'] = (location[0], ('%s?language=%s' % (location[1], tab_language)))
    return response
