Ticket #6641: query.diff

File query.diff, 1.0 KB (added by JEFFGUINNESS, 11 years ago)

Diff file

  • django/db/models/query.py

     
    273273        try:
    274274            return self.get(**kwargs), False
    275275        except self.model.DoesNotExist:
    276             params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
    277             params.update(defaults)
    278             obj = self.model(**params)
    279             obj.save()
    280             return obj, True
     276            try:
     277                params = dict([(k, v) for k, v in kwargs.items() if '__' not in k])
     278                params.update(defaults)
     279                obj = self.model(**params)
     280                obj.save()
     281                return obj, True
     282            except Exception, e:
     283                if str(type(e)).find('IntegrityError') > -1:
     284                    return self.get(**kwargs), False
     285                else:
     286                    raise e
    281287
    282288    def latest(self, field_name=None):
    283289        """
Back to Top