Changeset 3070
- Timestamp:
- 06/03/06 08:37:34 (2 years ago)
- Files:
-
- django/trunk/django/contrib/admin/utils.py (modified) (1 diff)
- django/trunk/django/contrib/admin/views/main.py (modified) (1 diff)
- django/trunk/django/core/validators.py (modified) (1 diff)
- django/trunk/django/db/backends/oracle/base.py (modified) (1 diff)
- django/trunk/django/forms/__init__.py (modified) (23 diffs)
- django/trunk/django/template/__init__.py (modified) (1 diff)
- django/trunk/django/utils/datastructures.py (modified) (2 diffs)
- django/trunk/django/utils/xmlutils.py (modified) (1 diff)
- django/trunk/django/views/generic/create_update.py (modified) (6 diffs)
- django/trunk/django/views/generic/date_based.py (modified) (12 diffs)
- django/trunk/django/views/generic/list_detail.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/admin/utils.py
r2809 r3070 82 82 83 83 def create_reference_role(rolename, urlbase): 84 def _role(name, rawtext, text, lineno, inliner, options={}, content=[]): 84 def _role(name, rawtext, text, lineno, inliner, options=None, content=None): 85 if options is None: options = {} 86 if content is None: content = [] 85 87 node = docutils.nodes.reference(rawtext, text, refuri=(urlbase % (inliner.document.settings.link_base, text.lower())), **options) 86 88 return [node], [] 87 89 docutils.parsers.rst.roles.register_canonical_role(rolename, _role) 88 90 89 def default_reference_role(name, rawtext, text, lineno, inliner, options={}, content=[]): 91 def default_reference_role(name, rawtext, text, lineno, inliner, options=None, content=None): 92 if options is None: options = {} 93 if content is None: content = [] 90 94 context = inliner.document.settings.default_reference_context 91 95 node = docutils.nodes.reference(rawtext, text, refuri=(ROLES[context] % (inliner.document.settings.link_base, text.lower())), **options) django/trunk/django/contrib/admin/views/main.py
r3036 r3070 580 580 return filter_specs, bool(filter_specs) 581 581 582 def get_query_string(self, new_params={}, remove=[]): 582 def get_query_string(self, new_params=None, remove=None): 583 if new_params is None: new_params = {} 584 if remove is None: remove = [] 583 585 p = self.params.copy() 584 586 for r in remove: django/trunk/django/core/validators.py
r3048 r3070 400 400 specify one on instantiation. 401 401 """ 402 def __init__(self, validator_list=[], error_message=gettext_lazy("This field is invalid.")): 402 def __init__(self, validator_list=None, error_message=gettext_lazy("This field is invalid.")): 403 if validator_list is None: validator_list = [] 403 404 self.validator_list = validator_list 404 405 self.error_message = error_message django/trunk/django/db/backends/oracle/base.py
r2993 r3070 66 66 you'll need to use "%%s". 67 67 """ 68 def execute(self, query, params=[]): 68 def execute(self, query, params=None): 69 if params is None: params = [] 69 70 query = self.convert_arguments(query, len(params)) 70 71 return Database.Cursor.execute(self, query, params) 71 72 72 def executemany(self, query, params=[]): 73 def executemany(self, query, params=None): 74 if params is None: params = [] 73 75 query = self.convert_arguments(query, len(params[0])) 74 76 return Database.Cursor.executemany(self, query, params) django/trunk/django/forms/__init__.py
r3048 r3070 368 368 class TextField(FormField): 369 369 input_type = "text" 370 def __init__(self, field_name, length=30, maxlength=None, is_required=False, validator_list=[], member_name=None): 370 def __init__(self, field_name, length=30, maxlength=None, is_required=False, validator_list=None, member_name=None): 371 if validator_list is None: validator_list = [] 371 372 self.field_name = field_name 372 373 self.length, self.maxlength = length, maxlength … … 405 406 406 407 class LargeTextField(TextField): 407 def __init__(self, field_name, rows=10, cols=40, is_required=False, validator_list=[], maxlength=None): 408 def __init__(self, field_name, rows=10, cols=40, is_required=False, validator_list=None, maxlength=None): 409 if validator_list is None: validator_list = [] 408 410 self.field_name = field_name 409 411 self.rows, self.cols, self.is_required = rows, cols, is_required … … 423 425 424 426 class HiddenField(FormField): 425 def __init__(self, field_name, is_required=False, validator_list=[]): 427 def __init__(self, field_name, is_required=False, validator_list=None): 428 if validator_list is None: validator_list = [] 426 429 self.field_name, self.is_required = field_name, is_required 427 430 self.validator_list = validator_list[:] … … 453 456 454 457 class SelectField(FormField): 455 def __init__(self, field_name, choices=[], size=1, is_required=False, validator_list=[], member_name=None): 458 def __init__(self, field_name, choices=None, size=1, is_required=False, validator_list=None, member_name=None): 459 if validator_list is None: validator_list = [] 460 if choices is None: choices = [] 456 461 self.field_name = field_name 457 462 # choices is a list of (value, human-readable key) tuples because order matters … … 489 494 490 495 class RadioSelectField(FormField): 491 def __init__(self, field_name, choices=[], ul_class='', is_required=False, validator_list=[], member_name=None): 496 def __init__(self, field_name, choices=None, ul_class='', is_required=False, validator_list=None, member_name=None): 497 if validator_list is None: validator_list = [] 498 if choices is None: choices = [] 492 499 self.field_name = field_name 493 500 # choices is a list of (value, human-readable key) tuples because order matters … … 553 560 class NullBooleanField(SelectField): 554 561 "This SelectField provides 'Yes', 'No' and 'Unknown', mapping results to True, False or None" 555 def __init__(self, field_name, is_required=False, validator_list=[]): 562 def __init__(self, field_name, is_required=False, validator_list=None): 563 if validator_list is None: validator_list = [] 556 564 SelectField.__init__(self, field_name, choices=[('1', 'Unknown'), ('2', 'Yes'), ('3', 'No')], 557 565 is_required=is_required, validator_list=validator_list) … … 606 614 """ 607 615 requires_data_list = True 608 def __init__(self, field_name, choices=[], validator_list=[]): 616 def __init__(self, field_name, choices=None, validator_list=None): 617 if validator_list is None: validator_list = [] 618 if choices is None: choices = [] 609 619 SelectMultipleField.__init__(self, field_name, choices, size=1, is_required=False, validator_list=validator_list) 610 620 … … 637 647 638 648 class FileUploadField(FormField): 639 def __init__(self, field_name, is_required=False, validator_list=[]): 649 def __init__(self, field_name, is_required=False, validator_list=None): 650 if validator_list is None: validator_list = [] 640 651 self.field_name, self.is_required = field_name, is_required 641 652 self.validator_list = [self.isNonEmptyFile] + validator_list … … 676 687 677 688 class IntegerField(TextField): 678 def __init__(self, field_name, length=10, maxlength=None, is_required=False, validator_list=[], member_name=None): 689 def __init__(self, field_name, length=10, maxlength=None, is_required=False, validator_list=None, member_name=None): 690 if validator_list is None: validator_list = [] 679 691 validator_list = [self.isInteger] + validator_list 680 692 if member_name is not None: … … 695 707 696 708 class SmallIntegerField(IntegerField): 697 def __init__(self, field_name, length=5, maxlength=5, is_required=False, validator_list=[]): 709 def __init__(self, field_name, length=5, maxlength=5, is_required=False, validator_list=None): 710 if validator_list is None: validator_list = [] 698 711 validator_list = [self.isSmallInteger] + validator_list 699 712 IntegerField.__init__(self, field_name, length, maxlength, is_required, validator_list) … … 704 717 705 718 class PositiveIntegerField(IntegerField): 706 def __init__(self, field_name, length=10, maxlength=None, is_required=False, validator_list=[]): 719 def __init__(self, field_name, length=10, maxlength=None, is_required=False, validator_list=None): 720 if validator_list is None: validator_list = [] 707 721 validator_list = [self.isPositive] + validator_list 708 722 IntegerField.__init__(self, field_name, length, maxlength, is_required, validator_list) … … 713 727 714 728 class PositiveSmallIntegerField(IntegerField): 715 def __init__(self, field_name, length=5, maxlength=None, is_required=False, validator_list=[]): 729 def __init__(self, field_name, length=5, maxlength=None, is_required=False, validator_list=None): 730 if validator_list is None: validator_list = [] 716 731 validator_list = [self.isPositiveSmall] + validator_list 717 732 IntegerField.__init__(self, field_name, length, maxlength, is_required, validator_list) … … 722 737 723 738 class FloatField(TextField): 724 def __init__(self, field_name, max_digits, decimal_places, is_required=False, validator_list=[]): 739 def __init__(self, field_name, max_digits, decimal_places, is_required=False, validator_list=None): 740 if validator_list is None: validator_list = [] 725 741 self.max_digits, self.decimal_places = max_digits, decimal_places 726 742 validator_list = [self.isValidFloat] + validator_list … … 747 763 """A FormField that automatically converts its data to a datetime.datetime object. 748 764 The data should be in the format YYYY-MM-DD HH:MM:SS.""" 749 def __init__(self, field_name, length=30, maxlength=None, is_required=False, validator_list=[]): 765 def __init__(self, field_name, length=30, maxlength=None, is_required=False, validator_list=None): 766 if validator_list is None: validator_list = [] 750 767 self.field_name = field_name 751 768 self.length, self.maxlength = length, maxlength … … 770 787 """A FormField that automatically converts its data to a datetime.date object. 771 788 The data should be in the format YYYY-MM-DD.""" 772 def __init__(self, field_name, is_required=False, validator_list=[]): 789 def __init__(self, field_name, is_required=False, validator_list=None): 790 if validator_list is None: validator_list = [] 773 791 validator_list = [self.isValidDate] + validator_list 774 792 TextField.__init__(self, field_name, length=10, maxlength=10, … … 794 812 """A FormField that automatically converts its data to a datetime.time object. 795 813 The data should be in the format HH:MM:SS or HH:MM:SS.mmmmmm.""" 796 def __init__(self, field_name, is_required=False, validator_list=[]): 814 def __init__(self, field_name, is_required=False, validator_list=None): 815 if validator_list is None: validator_list = [] 797 816 validator_list = [self.isValidTime] + validator_list 798 817 TextField.__init__(self, field_name, length=8, maxlength=8, … … 828 847 class EmailField(TextField): 829 848 "A convenience FormField for validating e-mail addresses" 830 def __init__(self, field_name, length=50, maxlength=75, is_required=False, validator_list=[]): 849 def __init__(self, field_name, length=50, maxlength=75, is_required=False, validator_list=None): 850 if validator_list is None: validator_list = [] 831 851 validator_list = [self.isValidEmail] + validator_list 832 852 TextField.__init__(self, field_name, length, maxlength=maxlength, … … 841 861 class URLField(TextField): 842 862 "A convenience FormField for validating URLs" 843 def __init__(self, field_name, length=50, maxlength=200, is_required=False, validator_list=[]): 863 def __init__(self, field_name, length=50, maxlength=200, is_required=False, validator_list=None): 864 if validator_list is None: validator_list = [] 844 865 validator_list = [self.isValidURL] + validator_list 845 866 TextField.__init__(self, field_name, length=length, maxlength=maxlength, … … 853 874 854 875 class IPAddressField(TextField): 855 def __init__(self, field_name, length=15, maxlength=15, is_required=False, validator_list=[]): 876 def __init__(self, field_name, length=15, maxlength=15, is_required=False, validator_list=None): 877 if validator_list is None: validator_list = [] 856 878 validator_list = [self.isValidIPAddress] + validator_list 857 879 TextField.__init__(self, field_name, length=length, maxlength=maxlength, … … 874 896 class FilePathField(SelectField): 875 897 "A SelectField whose choices are the files in a given directory." 876 def __init__(self, field_name, path, match=None, recursive=False, is_required=False, validator_list= []):898 def __init__(self, field_name, path, match=None, recursive=False, is_required=False, validator_list=None): 877 899 import os 878 900 if match is not None: … … 897 919 class PhoneNumberField(TextField): 898 920 "A convenience FormField for validating phone numbers (e.g. '630-555-1234')" 899 def __init__(self, field_name, is_required=False, validator_list=[]): 921 def __init__(self, field_name, is_required=False, validator_list=None): 922 if validator_list is None: validator_list = [] 900 923 validator_list = [self.isValidPhone] + validator_list 901 924 TextField.__init__(self, field_name, length=12, maxlength=12, … … 910 933 class USStateField(TextField): 911 934 "A convenience FormField for validating U.S. states (e.g. 'IL')" 912 def __init__(self, field_name, is_required=False, validator_list=[]): 935 def __init__(self, field_name, is_required=False, validator_list=None): 936 if validator_list is None: validator_list = [] 913 937 validator_list = [self.isValidUSState] + validator_list 914 938 TextField.__init__(self, field_name, length=2, maxlength=2, … … 930 954 class CommaSeparatedIntegerField(TextField): 931 955 "A convenience FormField for validating comma-separated integer fields" 932 def __init__(self, field_name, maxlength=None, is_required=False, validator_list=[]): 956 def __init__(self, field_name, maxlength=None, is_required=False, validator_list=None): 957 if validator_list is None: validator_list = [] 933 958 validator_list = [self.isCommaSeparatedIntegerList] + validator_list 934 959 TextField.__init__(self, field_name, length=20, maxlength=maxlength, django/trunk/django/template/__init__.py
r2906 r3070 228 228 self.add_library(lib) 229 229 230 def parse(self, parse_until=[]): 230 def parse(self, parse_until=None): 231 if parse_until is None: parse_until = [] 231 232 nodelist = self.create_nodelist() 232 233 while self.tokens: django/trunk/django/utils/datastructures.py
r2809 r3070 43 43 class SortedDict(dict): 44 44 "A dictionary that keeps its keys in the order in which they're inserted." 45 def __init__(self, data={}): 45 def __init__(self, data=None): 46 if data is None: data = {} 46 47 dict.__init__(self, data) 47 48 self.keyOrder = data.keys() … … 124 125 return self.__class__(dict.items(self)) 125 126 126 def __deepcopy__(self, memo ={}):127 def __deepcopy__(self, memo): 127 128 import copy 128 129 result = self.__class__() django/trunk/django/utils/xmlutils.py
r3 r3070 6 6 7 7 class SimplerXMLGenerator(XMLGenerator): 8 def addQuickElement(self, name, contents=None, attrs= {}):8 def addQuickElement(self, name, contents=None, attrs=None): 9 9 "Convenience method for adding an element with no children" 10 if attrs is None: attrs = {} 10 11 self.startElement(name, attrs) 11 12 if contents is not None: django/trunk/django/views/generic/create_update.py
r2951 r3070 10 10 11 11 def create_object(request, model, template_name=None, 12 template_loader=loader, extra_context= {}, post_save_redirect=None,12 template_loader=loader, extra_context=None, post_save_redirect=None, 13 13 login_required=False, follow=None, context_processors=None): 14 14 """ … … 20 20 the form wrapper for the object 21 21 """ 22 if extra_context is None: extra_context = {} 22 23 if login_required and request.user.is_anonymous(): 23 24 return redirect_to_login(request.path) … … 72 73 def update_object(request, model, object_id=None, slug=None, 73 74 slug_field=None, template_name=None, template_loader=loader, 74 extra_context= {}, post_save_redirect=None,75 extra_context=None, post_save_redirect=None, 75 76 login_required=False, follow=None, context_processors=None, 76 77 template_object_name='object'): … … 85 86 the original object being edited 86 87 """ 88 if extra_context is None: extra_context = {} 87 89 if login_required and request.user.is_anonymous(): 88 90 return redirect_to_login(request.path) … … 144 146 def delete_object(request, model, post_delete_redirect, 145 147 object_id=None, slug=None, slug_field=None, template_name=None, 146 template_loader=loader, extra_context= {},148 template_loader=loader, extra_context=None, 147 149 login_required=False, context_processors=None, template_object_name='object'): 148 150 """ … … 158 160 the original object being deleted 159 161 """ 162 if extra_context is None: extra_context = {} 160 163 if login_required and request.user.is_anonymous(): 161 164 return redirect_to_login(request.path) django/trunk/django/views/generic/date_based.py
r3039 r3070 7 7 def archive_index(request, queryset, date_field, num_latest=15, 8 8 template_name=None, template_loader=loader, 9 extra_context= {}, allow_empty=False, context_processors=None,9 extra_context=None, allow_empty=False, context_processors=None, 10 10 mimetype=None): 11 11 """ … … 19 19 Latest N (defaults to 15) objects by date 20 20 """ 21 if extra_context is None: extra_context = {} 21 22 model = queryset.model 22 23 queryset = queryset.filter(**{'%s__lte' % date_field: datetime.datetime.now()}) … … 45 46 46 47 def archive_year(request, year, queryset, date_field, template_name=None, 47 template_loader=loader, extra_context= {}, allow_empty=False,48 template_loader=loader, extra_context=None, allow_empty=False, 48 49 context_processors=None, template_object_name='object', mimetype=None, 49 50 make_object_list=False): … … 61 62 (Only available if make_object_list argument is True) 62 63 """ 64 if extra_context is None: extra_context = {} 63 65 model = queryset.model 64 66 now = datetime.datetime.now() … … 93 95 def archive_month(request, year, month, queryset, date_field, 94 96 month_format='%b', template_name=None, template_loader=loader, 95 extra_context= {}, allow_empty=False, context_processors=None,97 extra_context=None, allow_empty=False, context_processors=None, 96 98 template_object_name='object', mimetype=None): 97 99 """ … … 109 111 list of objects published in the given month 110 112 """ 113 if extra_context is None: extra_context = {} 111 114 try: 112 115 date = datetime.date(*time.strptime(year+month, '%Y'+month_format)[:3]) … … 149 152 def archive_week(request, year, week, queryset, date_field, 150 153 template_name=None, template_loader=loader, 151 extra_context= {}, allow_empty=True, context_processors=None,154 extra_context=None, allow_empty=True, context_processors=None, 152 155 template_object_name='object', mimetype=None): 153 156 """ … … 161 164 list of objects published in the given week 162 165 """ 166 if extra_context is None: extra_context = {} 163 167 try: 164 168 date = datetime.date(*time.strptime(year+'-0-'+week, '%Y-%w-%U')[:3]) … … 196 200 def archive_day(request, year, month, day, queryset, date_field, 197 201 month_format='%b', day_format='%d', template_name=None, 198 template_loader=loader, extra_context= {}, allow_empty=False,202 template_loader=loader, extra_context=None, allow_empty=False, 199 203 context_processors=None, template_object_name='object', 200 204 mimetype=None): … … 213 217 (datetime) the next day, or None if the current day is today 214 218 """ 219 if extra_context is None: extra_context = {} 215 220 try: 216 221 date = datetime.date(*time.strptime(year+month+day, '%Y'+month_format+day_format)[:3]) … … 262 267 month_format='%b', day_format='%d', object_id=None, slug=None, 263 268 slug_field=None, template_name=None, template_name_field=None, 264 template_loader=loader, extra_context= {}, context_processors=None,269 template_loader=loader, extra_context=None, context_processors=None, 265 270 template_object_name='object', mimetype=None): 266 271 """ … … 272 277 the object to be detailed 273 278 """ 279 if extra_context is None: extra_context = {} 274 280 try: 275 281 date = datetime.date(*time.strptime(year+month+day, '%Y'+month_format+day_format)[:3]) django/trunk/django/views/generic/list_detail.py
r3022 r3070 7 7 def object_list(request, queryset, paginate_by=None, allow_empty=False, 8 8 template_name=None, template_loader=loader, 9 extra_context= {}, context_processors=None, template_object_name='object',9 extra_context=None, context_processors=None, template_object_name='object', 10 10 mimetype=None): 11 11 """ … … 35 35 number of objects, total 36 36 """ 37 if extra_context is None: extra_context = {} 37 38 queryset = queryset._clone() 38 39 if paginate_by: … … 79 80 def object_detail(request, queryset, object_id=None, slug=None, 80 81 slug_field=None, template_name=None, template_name_field=None, 81 template_loader=loader, extra_context= {},82 template_loader=loader, extra_context=None, 82 83 context_processors=None, template_object_name='object', 83 84 mimetype=None): … … 90 91 the object 91 92 """ 93 if extra_context is None: extra_context = {} 92 94 model = queryset.model 93 95 if object_id:
