pip install smart_scrapy
Setting a default value to a Scrapy Field should be as simple as the following:
import scrapy
import smart_scrapy
class SomeItem(smart_scrapy.SmartItem):
foo = scrapy.Field(default='something')
With default value:
>>> some_item = SomeItem()
>>> print(some_item)
{'foo': 'something'}
With defined value:
>>> some_item = SomeItem(foo='bar')
>>> print(some_item)
{'foo': 'bar'}
With default value then override:
>>> some_item = SomeItem()
>>> print(some_item)
{'foo': 'something'}
>>> some_item['foo'] = 'baz'
>>> print(some_item)
{'foo': 'baz'}