1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-26 19:03:53 +00:00

Merge pull request #160 from midiotthimble/patch-1

Pass into the model only existing fields

test passing OK and changes makes sense
This commit is contained in:
Daniel Graña 2012-08-09 05:41:50 -07:00
commit 483a70cb5b
3 changed files with 7 additions and 2 deletions

View File

@ -25,7 +25,8 @@ class DjangoItem(Item):
django_model = None
def save(self, commit=True):
modelargs = dict((f, self.get(f, None)) for f in self._model_fields)
modelargs = dict((k, self.get(k)) for k in self._values
if k in self._model_fields)
model = self.django_model(**modelargs)
if commit:
model.save()

View File

@ -78,3 +78,7 @@ class DjangoItemTest(unittest.TestCase):
self.assertEqual(person.name, 'John')
def test_default_field_values(self):
i = BasePersonItem()
person = i.save(commit=False)
self.assertEqual(person.name, 'Robot')

View File

@ -2,7 +2,7 @@ from django.db import models
class Person(models.Model):
name = models.CharField(max_length=255)
name = models.CharField(max_length=255, default='Robot')
age = models.IntegerField()
class Meta: