Changeset 3145
- Timestamp:
- 06/18/06 21:34:32 (2 years ago)
- Files:
-
- django/trunk/django/db/models/base.py (modified) (1 diff)
- django/trunk/tests/modeltests/properties/models.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/base.py
r3130 r3145 108 108 val = kwargs.pop(f.attname, f.get_default()) 109 109 setattr(self, f.attname, val) 110 for prop in kwargs.keys(): 111 try: 112 if isinstance(getattr(self.__class__, prop), property): 113 setattr(self, prop, kwargs.pop(prop)) 114 except AttributeError: 115 pass 110 116 if kwargs: 111 117 raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0] django/trunk/tests/modeltests/properties/models.py
r3028 r3145 13 13 def _get_full_name(self): 14 14 return "%s %s" % (self.first_name, self.last_name) 15 16 def _set_full_name(self, combined_name): 17 self.first_name, self.last_name = combined_name.split(' ', 1) 18 15 19 full_name = property(_get_full_name) 20 21 full_name_2 = property(_get_full_name, _set_full_name) 16 22 17 23 API_TESTS = """ … … 26 32 ... 27 33 AttributeError: can't set attribute 34 35 # But "full_name_2" has, and it can be used to initialise the class. 36 >>> a2 = Person(full_name_2 = 'Paul McCartney') 37 >>> a2.save() 38 >>> a2.first_name 39 'Paul' 28 40 """
