Ticket #4040: 4040.diff
| File 4040.diff, 39.0 kB (added by Gary Wilson <gary.wilson@gmail.com>, 2 years ago) |
|---|
-
django/bin/profiling/gather_profile_stats.py
old new 22 22 else: 23 23 continue 24 24 print "Processing %s" % f 25 if p rofiles.has_key(path):25 if path in profiles: 26 26 profiles[path].add(prof) 27 27 else: 28 28 profiles[path] = prof -
django/contrib/admin/templatetags/admin_modify.py
old new 74 74 self.bound_field_var = bound_field_var 75 75 76 76 def get_nodelist(cls, klass): 77 if not cls.nodelists.has_key(klass):77 if klass not in cls.nodelists: 78 78 try: 79 79 field_class_name = klass.__name__ 80 80 template_name = "widget/%s.html" % class_name_to_underscored(field_class_name) -
django/contrib/admin/views/auth.py
old new 17 17 if not errors: 18 18 new_user = manipulator.save(new_data) 19 19 msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': 'user', 'obj': new_user} 20 if request.POST.has_key("_addanother"):20 if "_addanother" in request.POST: 21 21 request.user.message_set.create(message=msg) 22 22 return HttpResponseRedirect(request.path) 23 23 else: … … 29 29 return render_to_response('admin/auth/user/add_form.html', { 30 30 'title': _('Add user'), 31 31 'form': form, 32 'is_popup': request.REQUEST.has_key('_popup'),32 'is_popup': '_popup' in request.REQUEST, 33 33 'add': True, 34 34 'change': False, 35 35 'has_delete_permission': False, … … 63 63 return render_to_response('admin/auth/user/change_password.html', { 64 64 'title': _('Change password: %s') % escape(user.username), 65 65 'form': form, 66 'is_popup': request.REQUEST.has_key('_popup'),66 'is_popup': '_popup' in request.REQUEST, 67 67 'add': True, 68 68 'change': False, 69 69 'has_delete_permission': False, -
django/contrib/admin/views/decorators.py
old new 12 12 13 13 def _display_login_form(request, error_message=''): 14 14 request.session.set_test_cookie() 15 if request.POST and request.POST.has_key('post_data'):15 if request.POST and 'post_data' in request.POST: 16 16 # User has failed login BUT has previously saved post data. 17 17 post_data = request.POST['post_data'] 18 18 elif request.POST: … … 48 48 def _checklogin(request, *args, **kwargs): 49 49 if request.user.is_authenticated() and request.user.is_staff: 50 50 # The user is valid. Continue to the admin page. 51 if request.POST.has_key('post_data'):51 if 'post_data' in request.POST: 52 52 # User must have re-authenticated through a different window 53 53 # or tab. 54 54 request.POST = _decode_post_data(request.POST['post_data']) … … 57 57 assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." 58 58 59 59 # If this isn't already the login page, display it. 60 if not request.POST.has_key(LOGIN_FORM_KEY):60 if LOGIN_FORM_KEY not in request.POST: 61 61 if request.POST: 62 62 message = _("Please log in again, because your session has expired. Don't worry: Your submission has been saved.") 63 63 else: … … 92 92 # TODO: set last_login with an event. 93 93 user.last_login = datetime.datetime.now() 94 94 user.save() 95 if request.POST.has_key('post_data'):95 if 'post_data' in request.POST: 96 96 post_data = _decode_post_data(request.POST['post_data']) 97 if post_data and not post_data.has_key(LOGIN_FORM_KEY):97 if post_data and LOGIN_FORM_KEY not in post_data: 98 98 # overwrite request.POST with the saved post_data, and continue 99 99 request.POST = post_data 100 100 request.user = user -
django/contrib/admin/views/main.py
old new 257 257 msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object} 258 258 # Here, we distinguish between different save types by checking for 259 259 # the presence of keys in request.POST. 260 if request.POST.has_key("_continue"):260 if "_continue" in request.POST: 261 261 request.user.message_set.create(message=msg + ' ' + _("You may edit it again below.")) 262 if request.POST.has_key("_popup"):262 if "_popup" in request.POST: 263 263 post_url_continue += "?_popup=1" 264 264 return HttpResponseRedirect(post_url_continue % pk_value) 265 if request.POST.has_key("_popup"):265 if "_popup" in request.POST: 266 266 if type(pk_value) is str: # Quote if string, so JavaScript doesn't think it's a variable. 267 267 pk_value = '"%s"' % pk_value.replace('"', '\\"') 268 268 return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, %s, "%s");</script>' % \ 269 269 (pk_value, str(new_object).replace('"', '\\"'))) 270 elif request.POST.has_key("_addanother"):270 elif "_addanother" in request.POST: 271 271 request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name)) 272 272 return HttpResponseRedirect(request.path) 273 273 else: … … 288 288 c = template.RequestContext(request, { 289 289 'title': _('Add %s') % opts.verbose_name, 290 290 'form': form, 291 'is_popup': request.REQUEST.has_key('_popup'),291 'is_popup': '_popup' in request.REQUEST, 292 292 'show_delete': show_delete, 293 293 }) 294 294 … … 308 308 if not request.user.has_perm(app_label + '.' + opts.get_change_permission()): 309 309 raise PermissionDenied 310 310 311 if request.POST and request.POST.has_key("_saveasnew"):311 if request.POST and "_saveasnew" in request.POST: 312 312 return add_stage(request, app_label, model_name, form_url='../../add/') 313 313 314 314 try: … … 343 343 LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, str(new_object), CHANGE, change_message) 344 344 345 345 msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name': opts.verbose_name, 'obj': new_object} 346 if request.POST.has_key("_continue"):346 if "_continue" in request.POST: 347 347 request.user.message_set.create(message=msg + ' ' + _("You may edit it again below.")) 348 if request.REQUEST.has_key('_popup'):348 if '_popup' in request.REQUEST: 349 349 return HttpResponseRedirect(request.path + "?_popup=1") 350 350 else: 351 351 return HttpResponseRedirect(request.path) 352 elif request.POST.has_key("_saveasnew"):352 elif "_saveasnew" in request.POST: 353 353 request.user.message_set.create(message=_('The %(name)s "%(obj)s" was added successfully. You may edit it again below.') % {'name': opts.verbose_name, 'obj': new_object}) 354 354 return HttpResponseRedirect("../%s/" % pk_value) 355 elif request.POST.has_key("_addanother"):355 elif "_addanother" in request.POST: 356 356 request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name)) 357 357 return HttpResponseRedirect("../add/") 358 358 else: … … 392 392 'form': form, 393 393 'object_id': object_id, 394 394 'original': manipulator.original_object, 395 'is_popup': request.REQUEST.has_key('_popup'),395 'is_popup': '_popup' in request.REQUEST, 396 396 }) 397 397 return render_change_form(model, manipulator, c, change=True) 398 398 change_stage = staff_member_required(never_cache(change_stage)) … … 558 558 self.page_num = int(request.GET.get(PAGE_VAR, 0)) 559 559 except ValueError: 560 560 self.page_num = 0 561 self.show_all = request.GET.has_key(ALL_VAR)562 self.is_popup = request.GET.has_key(IS_POPUP_VAR)561 self.show_all = ALL_VAR in request.GET 562 self.is_popup = IS_POPUP_VAR in request.GET 563 563 self.params = dict(request.GET.items()) 564 if self.params.has_key(PAGE_VAR):564 if PAGE_VAR in self.params: 565 565 del self.params[PAGE_VAR] 566 if self.params.has_key(ERROR_FLAG):566 if ERROR_FLAG in self.params: 567 567 del self.params[ERROR_FLAG] 568 568 569 569 self.order_field, self.order_type = self.get_ordering() … … 594 594 if k.startswith(r): 595 595 del p[k] 596 596 for k, v in new_params.items(): 597 if p.has_key(k)and v is None:597 if k in p and v is None: 598 598 del p[k] 599 599 elif v is not None: 600 600 p[k] = v … … 656 656 order_field, order_type = ordering[0][1:], 'desc' 657 657 else: 658 658 order_field, order_type = ordering[0], 'asc' 659 if params.has_key(ORDER_VAR):659 if ORDER_VAR in params: 660 660 try: 661 661 field_name = lookup_opts.admin.list_display[int(params[ORDER_VAR])] 662 662 try: … … 674 674 order_field = f.name 675 675 except (IndexError, ValueError): 676 676 pass # Invalid ordering specified. Just use the default. 677 if params.has_key(ORDER_TYPE_VAR)and params[ORDER_TYPE_VAR] in ('asc', 'desc'):677 if ORDER_TYPE_VAR in params and params[ORDER_TYPE_VAR] in ('asc', 'desc'): 678 678 order_type = params[ORDER_TYPE_VAR] 679 679 return order_field, order_type 680 680 … … 682 682 qs = self.manager.get_query_set() 683 683 lookup_params = self.params.copy() # a dictionary of the query string 684 684 for i in (ALL_VAR, ORDER_VAR, ORDER_TYPE_VAR, SEARCH_VAR, IS_POPUP_VAR): 685 if lookup_params.has_key(i):685 if i in lookup_params: 686 686 del lookup_params[i] 687 687 688 688 # Apply lookup parameters from the query string. -
django/contrib/comments/templatetags/comments.py
old new 114 114 comment_list = get_list_function(**kwargs).order_by(self.ordering + 'submit_date').select_related() 115 115 116 116 if not self.free: 117 if context.has_key('user')and context['user'].is_authenticated():117 if 'user' in context and context['user'].is_authenticated(): 118 118 user_id = context['user'].id 119 119 context['user_can_moderate_comments'] = Comment.objects.user_is_moderator(context['user']) 120 120 else: -
django/contrib/comments/views/comments.py
old new 217 217 errors = manipulator.get_validation_errors(new_data) 218 218 # If user gave correct username/password and wasn't already logged in, log them in 219 219 # so they don't have to enter a username/password again. 220 if manipulator.get_user() and not manipulator.get_user().is_authenticated() and new_data.has_key('password')and manipulator.get_user().check_password(new_data['password']):220 if manipulator.get_user() and not manipulator.get_user().is_authenticated() and 'password' in new_data and manipulator.get_user().check_password(new_data['password']): 221 221 from django.contrib.auth import login 222 222 login(request, manipulator.get_user()) 223 if errors or request.POST.has_key('preview'):223 if errors or 'preview' in request.POST: 224 224 class CommentFormWrapper(oldforms.FormWrapper): 225 225 def __init__(self, manipulator, new_data, errors, rating_choices): 226 226 oldforms.FormWrapper.__init__(self, manipulator, new_data, errors) … … 244 244 'rating_range': rating_range, 245 245 'rating_choices': rating_choices, 246 246 }, context_instance=RequestContext(request)) 247 elif request.POST.has_key('post'):247 elif 'post' in request.POST: 248 248 # If the IP is banned, mail the admins, do NOT save the comment, and 249 249 # serve up the "Thanks for posting" page as if the comment WAS posted. 250 250 if request.META['REMOTE_ADDR'] in settings.BANNED_IPS: … … 298 298 new_data['is_public'] = IS_PUBLIC in option_list 299 299 manipulator = PublicFreeCommentManipulator() 300 300 errors = manipulator.get_validation_errors(new_data) 301 if errors or request.POST.has_key('preview'):301 if errors or 'preview' in request.POST: 302 302 comment = errors and '' or manipulator.get_comment(new_data) 303 303 return render_to_response('comments/free_preview.html', { 304 304 'comment': comment, … … 307 307 'target': target, 308 308 'hash': security_hash, 309 309 }, context_instance=RequestContext(request)) 310 elif request.POST.has_key('post'):310 elif 'post' in request.POST: 311 311 # If the IP is banned, mail the admins, do NOT save the comment, and 312 312 # serve up the "Thanks for posting" page as if the comment WAS posted. 313 313 if request.META['REMOTE_ADDR'] in settings.BANNED_IPS: … … 330 330 The object the comment was posted on 331 331 """ 332 332 obj = None 333 if request.GET.has_key('c'):333 if 'c' in request.GET: 334 334 content_type_id, object_id = request.GET['c'].split(':') 335 335 try: 336 336 content_type = ContentType.objects.get(pk=content_type_id) -
django/contrib/sitemaps/views.py
old new 16 16 def sitemap(request, sitemaps, section=None): 17 17 maps, urls = [], [] 18 18 if section is not None: 19 if not sitemaps.has_key(section):19 if section not in sitemaps: 20 20 raise Http404("No sitemap available for section: %r" % section) 21 21 maps.append(sitemaps[section]) 22 22 else: -
django/core/cache/backends/simple.py
old new 52 52 pass 53 53 54 54 def has_key(self, key): 55 return self._cache.has_key(key)55 return key in self._cache 56 56 57 57 def _cull(self): 58 58 if self._cull_frequency == 0: -
django/core/handlers/modpython.py
old new 42 42 43 43 def is_secure(self): 44 44 # Note: modpython 3.2.10+ has req.is_https(), but we need to support previous versions 45 return self._req.subprocess_env.has_key('HTTPS')and self._req.subprocess_env['HTTPS'] == 'on'45 return 'HTTPS' in self._req.subprocess_env and self._req.subprocess_env['HTTPS'] == 'on' 46 46 47 47 def _load_post_and_files(self): 48 48 "Populates self._post and self._files" 49 if self._req.headers_in.has_key('content-type')and self._req.headers_in['content-type'].startswith('multipart'):49 if 'content-type' in self._req.headers_in and self._req.headers_in['content-type'].startswith('multipart'): 50 50 self._post, self._files = http.parse_file_upload(self._req.headers_in, self.raw_post_data) 51 51 else: 52 52 self._post, self._files = http.QueryDict(self.raw_post_data), datastructures.MultiValueDict() -
django/core/handlers/wsgi.py
old new 103 103 return '%s%s' % (self.path, self.environ.get('QUERY_STRING', '') and ('?' + self.environ.get('QUERY_STRING', '')) or '') 104 104 105 105 def is_secure(self): 106 return self.environ.has_key('HTTPS')and self.environ['HTTPS'] == 'on'106 return 'HTTPS' in self.environ and self.environ['HTTPS'] == 'on' 107 107 108 108 def _load_post_and_files(self): 109 109 # Populates self._post and self._files -
django/core/management.py
old new 314 314 # Drop the table now 315 315 output.append('%s %s;' % (style.SQL_KEYWORD('DROP TABLE'), 316 316 style.SQL_TABLE(backend.quote_name(model._meta.db_table)))) 317 if backend.supports_constraints and references_to_delete.has_key(model):317 if backend.supports_constraints and model in references_to_delete: 318 318 for rel_class, f in references_to_delete[model]: 319 319 table = rel_class._meta.db_table 320 320 col = f.column … … 843 843 att_name += '_field' 844 844 comment_notes.append('Field renamed because it was a Python reserved word.') 845 845 846 if relations.has_key(i):846 if i in relations: 847 847 rel_to = relations[i][1] == table_name and "'self'" or table2model(relations[i][1]) 848 848 field_type = 'ForeignKey(%s' % rel_to 849 849 if att_name.endswith('_id'): … … 1550 1550 action = args[0] 1551 1551 except IndexError: 1552 1552 parser.print_usage_and_exit() 1553 if not action_mapping.has_key(action):1553 if action not in action_mapping: 1554 1554 print_error("Your action, %r, was invalid." % action, argv[0]) 1555 1555 1556 1556 # Switch to English, because django-admin.py creates database content -
django/core/servers/basehttp.py
old new 208 208 else: 209 209 return 'http' 210 210 211 _hop pish= {211 _hop_headers = { 212 212 'connection':1, 'keep-alive':1, 'proxy-authenticate':1, 213 213 'proxy-authorization':1, 'te':1, 'trailers':1, 'transfer-encoding':1, 214 214 'upgrade':1 215 } .has_key215 } 216 216 217 217 def is_hop_by_hop(header_name): 218 218 """Return true if 'header_name' is an HTTP/1.1 "Hop-by-Hop" header""" 219 return _hoppish(header_name.lower())219 return header_name.lower() in _hop_headers 220 220 221 221 class ServerHandler(object): 222 222 """Manage the invocation of a WSGI application""" … … 334 334 335 335 Subclasses can extend this to add other defaults. 336 336 """ 337 if not self.headers.has_key('Content-Length'):337 if 'Content-Length' not in self.headers: 338 338 self.set_content_length() 339 339 340 340 def start_response(self, status, headers,exc_info=None): … … 368 368 if self.origin_server: 369 369 if self.client_is_modern(): 370 370 self._write('HTTP/%s %s\r\n' % (self.http_version,self.status)) 371 if not self.headers.has_key('Date'):371 if 'Date' not in self.headers: 372 372 self._write( 373 373 'Date: %s\r\n' % time.asctime(time.gmtime(time.time())) 374 374 ) 375 if self.server_software and not self.headers.has_key('Server'):375 if self.server_software and 'Server' not in self.headers: 376 376 self._write('Server: %s\r\n' % self.server_software) 377 377 else: 378 378 self._write('Status: %s\r\n' % self.status) -
django/core/validators.py
old new 284 284 self.always_test = True 285 285 286 286 def __call__(self, field_data, all_data): 287 if all_data.has_key(self.other_field)and all_data[self.other_field] == self.other_value:287 if self.other_field in all_data and all_data[self.other_field] == self.other_value: 288 288 for v in self.validator_list: 289 289 v(field_data, all_data) 290 290 … … 322 322 self.always_test = True 323 323 324 324 def __call__(self, field_data, all_data): 325 if all_data.has_key(self.other_field)and all_data[self.other_field] == self.other_value and not field_data:325 if self.other_field in all_data and all_data[self.other_field] == self.other_value and not field_data: 326 326 raise ValidationError(self.error_message) 327 327 328 328 class RequiredIfOtherFieldDoesNotEqual(object): … … 335 335 self.always_test = True 336 336 337 337 def __call__(self, field_data, all_data): 338 if all_data.has_key(self.other_field)and all_data[self.other_field] != self.other_value and not field_data:338 if self.other_field in all_data and all_data[self.other_field] != self.other_value and not field_data: 339 339 raise ValidationError(self.error_message) 340 340 341 341 class IsLessThanOtherField(object): -
django/db/backends/mysql_old/base.py
old new 52 52 raise Database.Warning, "%s: %s" % (w, self.cursor.fetchall()) 53 53 54 54 def __getattr__(self, attr): 55 if self.__dict__.has_key(attr):55 if attr in self.__dict__: 56 56 return self.__dict__[attr] 57 57 else: 58 58 return getattr(self.cursor, attr) -
django/db/backends/postgresql/base.py
old new 47 47 return self.cursor.executemany(sql, new_param_list) 48 48 49 49 def __getattr__(self, attr): 50 if self.__dict__.has_key(attr):50 if attr in self.__dict__: 51 51 return self.__dict__[attr] 52 52 else: 53 53 return getattr(self.cursor, attr) -
django/db/backends/util.py
old new 33 33 }) 34 34 35 35 def __getattr__(self, attr): 36 if self.__dict__.has_key(attr):36 if attr in self.__dict__: 37 37 return self.__dict__[attr] 38 38 else: 39 39 return getattr(self.cursor, attr) -
django/db/models/fields/__init__.py
old new 779 779 kwargs['maxlength'] = kwargs.get('maxlength', 50) 780 780 kwargs.setdefault('validator_list', []).append(validators.isSlug) 781 781 # Set db_index=True unless it's been set manually. 782 if not kwargs.has_key('db_index'):782 if 'db_index' not in kwargs: 783 783 kwargs['db_index'] = True 784 784 Field.__init__(self, *args, **kwargs) 785 785 -
django/db/models/fields/generic.py
old new 37 37 def instance_pre_init(self, signal, sender, args, kwargs): 38 38 # Handle initalizing an object with the generic FK instaed of 39 39 # content-type/object-id fields. 40 if kwargs.has_key(self.name):40 if self.name in kwargs: 41 41 value = kwargs.pop(self.name) 42 42 kwargs[self.ct_field] = self.get_content_type(value) 43 43 kwargs[self.fk_field] = value._get_pk_val() -
django/db/models/fields/related.py
old new 474 474 to_field = to_field or to._meta.pk.name 475 475 kwargs['verbose_name'] = kwargs.get('verbose_name', '') 476 476 477 if kwargs.has_key('edit_inline_type'):477 if 'edit_inline_type' in kwargs: 478 478 import warnings 479 479 warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.") 480 480 kwargs['edit_inline'] = kwargs.pop('edit_inline_type') … … 567 567 to_field = to_field or to._meta.pk.name 568 568 kwargs['verbose_name'] = kwargs.get('verbose_name', '') 569 569 570 if kwargs.has_key('edit_inline_type'):570 if 'edit_inline_type' in kwargs: 571 571 import warnings 572 572 warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.") 573 573 kwargs['edit_inline'] = kwargs.pop('edit_inline_type') -
django/db/models/loading.py
old new 103 103 # in the _app_models dictionary 104 104 model_name = model._meta.object_name.lower() 105 105 model_dict = _app_models.setdefault(app_label, {}) 106 if model_ dict.has_key(model_name):106 if model_name in model_dict: 107 107 # The same model may be imported via different paths (e.g. 108 108 # appname.models and project.appname.models). We use the source 109 109 # filename as a means to detect identity. -
django/db/models/options.py
old new 140 140 def get_follow(self, override=None): 141 141 follow = {} 142 142 for f in self.fields + self.many_to_many + self.get_all_related_objects(): 143 if override and override.has_key(f.name):143 if override and f.name in override: 144 144 child_override = override[f.name] 145 145 else: 146 146 child_override = None … … 182 182 # TODO: follow 183 183 if not hasattr(self, '_field_types'): 184 184 self._field_types = {} 185 if not self._field_types.has_key(field_type):185 if field_type not in self._field_types: 186 186 try: 187 187 # First check self.fields. 188 188 for f in self.fields: -
django/db/transaction.py
old new 46 46 when no current block is running). 47 47 """ 48 48 thread_ident = thread.get_ident() 49 if state.has_key(thread_ident)and state[thread_ident]:49 if thread_ident in state and state[thread_ident]: 50 50 state[thread_ident].append(state[thread_ident][-1]) 51 51 else: 52 52 state[thread_ident] = [] 53 53 state[thread_ident].append(settings.TRANSACTIONS_MANAGED) 54 if not dirty.has_key(thread_ident):54 if thread_ident not in dirty: 55 55 dirty[thread_ident] = False 56 56 57 57 def leave_transaction_management(): … … 61 61 those from outside. (Commits are on connection level.) 62 62 """ 63 63 thread_ident = thread.get_ident() 64 if state.has_key(thread_ident)and state[thread_ident]:64 if thread_ident in state and state[thread_ident]: 65 65 del state[thread_ident][-1] 66 66 else: 67 67 raise TransactionManagementError("This code isn't under transaction management") … … 84 84 changes waiting for commit. 85 85 """ 86 86 thread_ident = thread.get_ident() 87 if dirty.has_key(thread_ident):87 if thread_ident in dirty: 88 88 dirty[thread_ident] = True 89 89 else: 90 90 raise TransactionManagementError("This code isn't under transaction management") … … 96 96 should happen. 97 97 """ 98 98 thread_ident = thread.get_ident() 99 if dirty.has_key(thread_ident):99 if thread_ident in dirty: 100 100 dirty[thread_ident] = False 101 101 else: 102 102 raise TransactionManagementError("This code isn't under transaction management") … … 106 106 Checks whether the transaction manager is in manual or in auto state. 107 107 """ 108 108 thread_ident = thread.get_ident() 109 if state.has_key(thread_ident):109 if thread_ident in state: 110 110 if state[thread_ident]: 111 111 return state[thread_ident][-1] 112 112 return settings.TRANSACTIONS_MANAGED -
django/http/__init__.py
old new 29 29 30 30 def __getitem__(self, key): 31 31 for d in (self.POST, self.GET): 32 if d.has_key(key):32 if key in d: 33 33 return d[key] 34 34 raise KeyError, "%s not found in either POST or GET" % key 35 35 36 36 def has_key(self, key): 37 return self.GET.has_key(key) or self.POST.has_key(key)37 return key in self.GET or key in self.POST 38 38 39 39 def get_full_path(self): 40 40 return '' … … 57 57 # name_dict is something like {'name': 'file', 'filename': 'test.txt'} for file uploads 58 58 # or {'name': 'blah'} for POST fields 59 59 # We assume all uploaded files have a 'filename' set. 60 if name_dict.has_key('filename'):60 if 'filename' in name_dict: 61 61 assert type([]) != type(submessage.get_payload()), "Nested MIME messages are not supported" 62 62 if not name_dict['filename'].strip(): 63 63 continue … … 66 66 filename = name_dict['filename'][name_dict['filename'].rfind("\\")+1:] 67 67 FILES.appendlist(name_dict['name'], { 68 68 'filename': filename, 69 'content-type': (submessage.has_key('Content-Type') and submessage['Content-Type'] or None),69 'content-type': 'Content-Type' in submessage and submessage['Content-Type'] or None, 70 70 'content': submessage.get_payload(), 71 71 }) 72 72 else: -
django/middleware/common.py
old new 25 25 """ 26 26 27 27 # Check for denied User-Agents 28 if request.META.has_key('HTTP_USER_AGENT'):28 if 'HTTP_USER_AGENT' in request.META: 29 29 for user_agent_regex in settings.DISALLOWED_USER_AGENTS: 30 30 if user_agent_regex.search(request.META['HTTP_USER_AGENT']): 31 31 return http.HttpResponseForbidden('<h1>Forbidden</h1>') -
django/newforms/forms.py
old new 244 244 def as_widget(self, widget, attrs=None): 245 245 attrs = attrs or {} 246 246 auto_id = self.auto_id 247 if auto_id and not attrs.has_key('id') and not widget.attrs.has_key('id'):247 if auto_id and 'id' not in attrs and 'id' not in widget.attrs: 248 248 attrs['id'] = auto_id 249 249 if not self.form.is_bound: 250 250 data = self.form.initial.get(self.name, self.field.initial) -
django/newforms/widgets.py
old new 230 230 return self.value == self.choice_value 231 231 232 232 def tag(self): 233 if self.attrs.has_key('id'):233 if 'id' in self.attrs: 234 234 self.attrs['id'] = '%s_%s' % (self.attrs['id'], self.index) 235 235 final_attrs = dict(self.attrs, type='radio', name=self.name, value=self.choice_value) 236 236 if self.is_checked(): … … 276 276 class CheckboxSelectMultiple(SelectMultiple): 277 277 def render(self, name, value, attrs=None, choices=()): 278 278 if value is None: value = [] 279 has_id = attrs and attrs.has_key('id')279 has_id = attrs and 'id' in attrs 280 280 final_attrs = self.build_attrs(attrs, name=name) 281 281 output = [u'<ul>'] 282 282 str_values = set([smart_unicode(v) for v in value]) # Normalize to strings. -
django/oldforms/__init__.py
old new 329 329 330 330 def convert_post_data(self, new_data): 331 331 name = self.get_member_name() 332 if new_data.has_key(self.field_name):332 if self.field_name in new_data: 333 333 d = new_data.getlist(self.field_name) 334 334 try: 335 335 converted_data = [self.__class__.html2python(data) for data in d] -
django/template/__init__.py
old new 338 338 return FilterExpression(token, self) 339 339 340 340 def find_filter(self, filter_name): 341 if self.filters.has_key(filter_name):341 if filter_name in self.filters: 342 342 return self.filters[filter_name] 343 343 else: 344 344 raise TemplateSyntaxError, "Invalid filter: '%s'" % filter_name -
django/template/context.py
old new 35 35 def __getitem__(self, key): 36 36 "Get a variable's value, starting at the current context and going upward" 37 37 for d in self.dicts: 38 if d.has_key(key):38 if key in d: 39 39 return d[key] 40 40 raise KeyError(key) 41 41 … … 45 45 46 46 def has_key(self, key): 47 47 for d in self.dicts: 48 if d.has_key(key):48 if key in d: 49 49 return True 50 50 return False 51 51 … … 54 54 55 55 def get(self, key, otherwise=None): 56 56 for d in self.dicts: 57 if d.has_key(key):57 if key in d: 58 58 return d[key] 59 59 return otherwise 60 60 -
django/template/defaulttags.py
old new 84 84 85 85 def render(self, context): 86 86 nodelist = NodeList() 87 if context.has_key('forloop'):87 if 'forloop' in context: 88 88 parentloop = context['forloop'] 89 89 else: 90 90 parentloop = {} … … 130 130 self._varlist = varlist 131 131 132 132 def render(self, context): 133 if context.has_key('forloop')and context['forloop']['first']:133 if 'forloop' in context and context['forloop']['first']: 134 134 self._last_seen = None 135 135 try: 136 136 if self._varlist: … … 429 429 name = args[1] 430 430 if not hasattr(parser, '_namedCycleNodes'): 431 431 raise TemplateSyntaxError("No named cycles in template: '%s' is not defined" % name) 432 if n ot parser._namedCycleNodes.has_key(name):432 if name not in parser._namedCycleNodes: 433 433 raise TemplateSyntaxError("Named cycle '%s' does not exist" % name) 434 434 return parser._namedCycleNodes[name] 435 435 … … 908 908 if len(bits) != 2: 909 909 raise TemplateSyntaxError, "'templatetag' statement takes one argument" 910 910 tag = bits[1] 911 if not TemplateTagNode.mapping.has_key(tag):911 if tag not in TemplateTagNode.mapping: 912 912 raise TemplateSyntaxError, "Invalid templatetag argument: '%s'. Must be one of: %s" % \ 913 913 (tag, TemplateTagNode.mapping.keys()) 914 914 return TemplateTagNode(tag) -
django/utils/datastructures.py
old new 42 42 43 43 def has_key(self, key): 44 44 for dict in self.dicts: 45 if dict.has_key(key):45 if key in dict: 46 46 return True 47 47 return False 48 48 -
django/utils/functional.py
old new 42 42 res = self.__func(*self.__args, **self.__kw) 43 43 return self.__dispatch[type(res)][funcname](res, *args, **kw) 44 44 45 if not self.__dispatch.has_key(klass):45 if klass not in self.__dispatch: 46 46 self.__dispatch[klass] = {} 47 47 self.__dispatch[klass][funcname] = func 48 48 return __wrapper__ -
django/utils/translation/trans_real.py
old new 199 199 will resolve against the default translation object, again. 200 200 """ 201 201 global _active 202 if _active.has_key(currentThread()):202 if currentThread() in _active: 203 203 del _active[currentThread()] 204 204 205 205 def get_language(): -
django/views/i18n.py
old new 97 97 deliver your JavaScript source from Django templates. 98 98 """ 99 99 if request.GET: 100 if request.GET.has_key('language'):100 if 'language' in request.GET: 101 101 if check_for_language(request.GET['language']): 102 102 activate(request.GET['language']) 103 103 if packages is None: … … 136 136 t.update(catalog._catalog) 137 137 src = [LibHead] 138 138 plural = None 139 if t.has_key(''):139 if '' in t: 140 140 for l in t[''].split('\n'): 141 141 if l.startswith('Plural-Forms:'): 142 142 plural = l.split(':',1)[1].strip() … … 155 155 if type(k) in (str, unicode): 156 156 csrc.append("catalog['%s'] = '%s';\n" % (javascript_quote(k), javascript_quote(v))) 157 157 elif type(k) == tuple: 158 if not pdict.has_key(k[0]):158 if k[0] not in pdict: 159 159 pdict[k[0]] = k[1] 160 160 else: 161 161 pdict[k[0]] = max(k[1], pdict[k[0]]) -
tests/regressiontests/dispatch/tests/test_saferef.py
old new 55 55 for t in self.ts: 56 56 if hasattr(t, 'x'): 57 57 self.assert_(sd.has_key(safeRef(t.x))) 58 self.assert_(safeRef(t.x) in sd) 58 59 else: 59 60 self.assert_(sd.has_key(safeRef(t))) 61 self.assert_(safeRef(t) in sd) 60 62 61 63 def testRepresentation (self): 62 64 """Test that the reference object's representation works -
tests/regressiontests/httpwrappers/tests.py
old new 34 34 >>> q.has_key('foo') 35 35 False 36 36 37 >>> 'foo' in q 38 False 39 37 40 >>> q.items() 38 41 [] 39 42 … … 124 127 >>> q.has_key('foo') 125 128 True 126 129 130 >>> 'foo' in q 131 True 132 127 133 >>> q.items() 128 134 [('foo', 'another'), ('name', 'john')] 129 135 … … 218 224 >>> q.has_key('foo') 219 225 True 220 226 227 >>> 'foo' in q 228 True 229 221 230 >>> q.has_key('bar') 222 231 False 223 232 233 >>> 'bar' in q 234 False 235 224 236 >>> q.items() 225 237 [('foo', 'bar')] 226 238 … … 303 315 >>> q.has_key('vote') 304 316 True 305 317 318 >>> 'vote' in q 319 True 320 306 321 >>> q.has_key('foo') 307 322 False 308 323 324 >>> 'foo' in q 325 False 326 309 327 >>> q.items() 310 328 [('vote', 'no')] 311 329
