Ticket #3873: django.diff

File django.diff, 2.0 KB (added by Philippe May <phil.django@…>, 8 years ago)
  • django/db/models/manipulators.py

     
    162162                    # old to the new, to see which fields have changed.
    163163                    old_rel_obj = None
    164164                    if self.change:
    165                         if rel_new_data[related.opts.pk.name][0]:
     165                        if rel_new_data[related.opts.pk.name]:
    166166                            try:
    167167                                old_rel_obj = getattr(self.original_object, related.get_accessor_name()).get(**{'%s__exact' % related.opts.pk.name: rel_new_data[related.opts.pk.attname][0]})
    168168                            except ObjectDoesNotExist:
     
    242242
    243243    def flatten_data(self):
    244244        new_data = {}
    245         obj = self.change and self.original_object or None
     245        if self.change:
     246            obj = self.original_object
     247        else:
     248            obj = None
    246249        for f in self.opts.get_data_holders(self.follow):
    247250            fol = self.follow.get(f.name)
    248251            new_data.update(f.flatten_data(fol, obj))
  • django/db/models/fields/__init__.py

     
    286286        field's data.
    287287        """
    288288        if rel:
    289             return new_data.get(self.name, [self.get_default()])[0]
     289            return new_data.get(self.name, [self.get_default()])
    290290        val = new_data.get(self.name, self.get_default())
    291291        if not self.empty_strings_allowed and val == '' and self.null:
    292292            val = None
     
    311311            return self.get_choices()
    312312
    313313    def _get_val_from_obj(self, obj):
    314         if obj:
     314        if obj is not None:
    315315            return getattr(obj, self.attname)
    316316        else:
    317317            return self.get_default()
Back to Top