def surname(self, value): if isinstance(value, str): if self.gender == 'F': query = SurName.objects.filter(_surname_female=value) else: query = SurName.objects.filter(_surname_male=value) if query.exists(): value = (SurName.objects.get(_surname_female=value) if self.gender == 'F' else SurName.objects.get( _surname_male=value)) else: value = (SurName.objects.create( surname={'surname_female': value}) if self.gender == 'F' else SurName.objects.create( surname={'surname_male': value})) if self._surname: if self._surname is not value: link_dec(self._surname) else: return link_inc(value) self._surname = value
def givname(self, value): if isinstance(value, str): value, created = GivName.objects.get_or_create(givname=value, ) if self._givname: if self._givname is not value: if self._givname.link > 1: self._givname.link -= 1 self._givname.save() elif self._givname.note: self._givname.link = 0 self._givname.save() else: self._givname.delete() else: return link_inc(value) self._givname = value