我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.contrib.admin.options.IS_POPUP_VAR。
def response_add(self, request, obj, post_url_continue=None): """ Determines the HttpResponse for the add_view stage. It mostly defers to its superclass implementation but is customized because the User model has a slightly different workflow. """ # We should allow further modification of the user just added i.e. the # 'Save' button should behave like the 'Save and continue editing' # button except in two scenarios: # * The user has pressed the 'Save and add another' button # * We are adding a user in a popup if '_addanother' not in request.POST and IS_POPUP_VAR not in request.POST: request.POST = request.POST.copy() request.POST['_continue'] = 1 return super(UserAdmin, self).response_add(request, obj, post_url_continue)
def _is_changelist_popup(request): """ Returns True if the popup GET parameter is set. This function is introduced to facilitate deprecating the legacy value for IS_POPUP_VAR and should be removed at the end of the deprecation cycle. """ if IS_POPUP_VAR in request.GET: return True IS_LEGACY_POPUP_VAR = 'pop' if IS_LEGACY_POPUP_VAR in request.GET: warnings.warn( "The `%s` GET parameter has been renamed to `%s`." % (IS_LEGACY_POPUP_VAR, IS_POPUP_VAR), PendingDeprecationWarning, 2) return True return False
def popup_status(request): return (IS_POPUP_VAR in request.GET or 'pop' in request.GET or IS_POPUP_VAR in request.POST or 'pop' in request.POST)
def admin_url_params(request, params=None): """ given a request, looks at GET and POST values to determine which params should be added. Is used to keep the context of popup and picker mode. """ params = params or {} if popup_status(request): params[IS_POPUP_VAR] = '1' pick_type = popup_pick_type(request) if pick_type: params['_pick'] = pick_type return params
def __missing__(self, key): """ Always allow accessing the keys 'popup', 'pick', 'pick_file' and 'pick_folder' as keys. """ if key == 'popup': return self.get(IS_POPUP_VAR, False) == '1' elif key == 'pick': return self.get('_pick', '') elif key.startswith('pick_'): return self.get('_pick', '') == key.split('pick_')[1]
def response_add(self, request, obj, post_url_continue=None): """ Determines the HttpResponse for the add_view stage. It mostly defers to its superclass implementation but is customized because the User model has a slightly different workflow. """ # We should allow further modification of the user just added i.e. the # 'Save' button should behave like the 'Save and continue editing' # button except in two scenarios: # * The user has pressed the 'Save and add another' button # * We are adding a user in a popup if '_addanother' not in request.POST and IS_POPUP_VAR not in request.POST: request.POST['_continue'] = 1 return super(UserAdmin, self).response_add(request, obj, post_url_continue)
def add_preserved_filters(context, url, popup=False, to_field=None): opts = context.get('opts') preserved_filters = context.get('preserved_filters') parsed_url = list(urlparse(url)) parsed_qs = dict(parse_qsl(parsed_url[4])) merged_qs = dict() if opts and preserved_filters: preserved_filters = dict(parse_qsl(preserved_filters)) match_url = '/%s' % url.partition(get_script_prefix())[2] try: match = resolve(match_url) except Resolver404: pass else: current_url = '%s:%s' % (match.app_name, match.url_name) changelist_url = 'admin:%s_%s_changelist' % (opts.app_label, opts.model_name) if changelist_url == current_url and '_changelist_filters' in preserved_filters: preserved_filters = dict(parse_qsl(preserved_filters['_changelist_filters'])) merged_qs.update(preserved_filters) if popup: from django.contrib.admin.options import IS_POPUP_VAR merged_qs[IS_POPUP_VAR] = 1 if to_field: from django.contrib.admin.options import TO_FIELD_VAR merged_qs[TO_FIELD_VAR] = to_field merged_qs.update(parsed_qs) parsed_url[4] = urlencode(merged_qs) return urlunparse(parsed_url)
def response_add(self, request, obj, post_url_continue=None): resp = super(PageVersionAdmin, self).response_add(request, obj, post_url_continue=post_url_continue) if IS_POPUP_VAR in request.POST: return self.render_close_frame() return resp
def get_context_data(self, **kwargs): """ Gets context data required for the admin view :param kwargs: Default keyword args :type kwargs: {} :return: Dict of data for the admin template """ context_data = super(AdminView, self).get_context_data(**kwargs) opts = self.admin_site.model._meta context_data.update({ 'add': False, 'change': False, 'has_add_permission': self.admin_site.has_add_permission(self.request), 'has_change_permission': self.admin_site.has_change_permission(self.request), 'has_delete_permission': self.admin_site.has_delete_permission(self.request), 'has_absolute_url': False, 'absolute_url': None, 'opts': opts, 'content_type_id': get_content_type_for_model(self.admin_site.model).pk, 'save_as': self.admin_site.save_as, 'save_on_top': self.admin_site.save_on_top, 'to_field_var': TO_FIELD_VAR, 'is_popup_var': IS_POPUP_VAR, 'is_popup': False, 'app_label': opts.app_label, }) return context_data
def user_change_password(self, request, id, form_url=''): if not self.has_change_permission(request): raise PermissionDenied user = get_object_or_404(self.get_queryset(request), pk=id) if request.method == 'POST': form = self.change_password_form(user, request.POST) if form.is_valid(): form.save() change_message = self.construct_change_message(request, form, None) self.log_change(request, request.user, change_message) msg = ugettext('Password changed successfully.') messages.success(request, msg) return HttpResponseRedirect('..') else: form = self.change_password_form(user) fieldsets = [(None, {'fields': list(form.base_fields)})] adminForm = admin.helpers.AdminForm(form, fieldsets, {}) context = { 'title': _('Change password: %s') % escape(user.get_username()), 'adminForm': adminForm, 'form_url': form_url, 'form': form, 'is_popup': IS_POPUP_VAR in request.REQUEST, 'add': True, 'change': False, 'has_delete_permission': False, 'has_change_permission': True, 'has_absolute_url': False, 'opts': self.model._meta, 'original': user, 'save_as': False, 'show_save': True, } return TemplateResponse(request, self.change_user_password_template or 'admin/auth/user/change_password.html', context, current_app=self.admin_site.name)