diff --git a/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py b/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py index edf56ad5f..bd45b2fe1 100644 --- a/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py +++ b/scrapy/trunk/scrapy/contrib_exp/newitem/fields.py @@ -10,7 +10,7 @@ class ItemFieldValueError(Exception): class ItemField(object): def __init__(self, required=False, default=None): self.required = required - self.default = default + self._default = default def assign(self, value): if hasattr(value, '__iter__'): @@ -29,9 +29,10 @@ class ItemField(object): "Converts the input iterable into a single value." return ' '.join(value) - def default_value(self): + @property + def default(self): "Returns the default value for this field" - return self.default or self.to_python(None) + return self._default or self.to_python(None) class BooleanItemField(ItemField): diff --git a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py index 21e2e1dda..add535f9b 100644 --- a/scrapy/trunk/scrapy/contrib_exp/newitem/models.py +++ b/scrapy/trunk/scrapy/contrib_exp/newitem/models.py @@ -28,7 +28,7 @@ class Item(object): try: return self._values[name] except KeyError: - return self._fields[name].default_value() + return self._fields[name].default else: return object.__getattribute__(self, name)