Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Unable to save or add contact
-
I dbl-checked that. Pythonista has access to Contacts & iCloud.
Is there a way to get the error code, other than just a False return from the Contacts.save() ?
-
*** SOLVED ***
I uninstalled / reinstalled Pythonista.
This time I got the prompt to authorize access to Contacts.Sometimes I wonder about myself :-/
Thanks for the help.
-
@clark 👍
-
I am having difficulties as well, I am changing a phone number and it doesnt save even though save sais true and is_authorised is true.
print(("Authorized:", contacts.is_authorized())) pattern = re.compile('^(0([2346789])|\(0([2346789])\))') for person in contacts.get_all_people(): if person.full_name != 'David Edson': continue #print person.full_name for p in range(len(person.phone)): t_phone = person.phone[p] l_phone = list(t_phone) number = str(l_phone[1]) match = pattern.match(number) if match: changed = pattern.sub('+61 %s'%match.group(2),number) print(number, changed) l_phone[1] = changed print l_phone t_phone = tuple(l_phone) print t_phone person.phone[p] = t_phone print person.phone print('save:',contacts.save())
with the output like this
('Authorized:', True) ('0408 680 808', '+61 408 680 808') [u'_$!<Mobile>!$_', '+61 408 680 808'] (u'_$!<Mobile>!$_', '+61 408 680 808') [(u'_$!<Mobile>!$_', u'0408 680 808')] ('save:', True)
-
@eddo888 did you wait some time before checking it has been saved?
-
yup, 1 hour now, the johhny ray example saved instantly, can we edit a contact and expect save to work ?
-
@eddo888 Sorry, I didn't read correctly your post 😢. Thus the problem is not the save but your code
-
Your last print shows that person.phone did not change
-
This seems to work, if your contact has only one phone
print 'before', person.phone #person.phone[p] = t_phone person.phone = [t_phone] print 'after', person.phone
-
cool, thanks, there must be a setter property on person.phones that does the work,
changes to bits of the phone list are not seen unless you do person.phone = <updated list>