@@ -57,13 +57,21 @@ def send_messages(self, request, queryset, bulk=False):
5757 if "error" in r ["results" ][0 ]:
5858 errors .append (r ["results" ][0 ]["error" ])
5959 else :
60- try :
61- errors = [r ["error" ] for r in ret [0 ][0 ]["results" ] if "error" in r ]
62- except TypeError :
63- for entry in ret [0 ][0 ]:
64- errors = errors + [r ["error" ] for r in entry ["results" ] if "error" in r ]
65- except IndexError :
66- pass
60+ if "results" in ret [0 ][0 ]:
61+ try :
62+ errors = [r ["error" ] for r in ret [0 ][0 ]["results" ] if "error" in r ]
63+ except TypeError :
64+ for entry in ret [0 ][0 ]:
65+ errors = errors + [r ["error" ] for r in entry ["results" ] if "error" in r ]
66+ except IndexError :
67+ pass
68+ else :
69+ # different format, e.g.:
70+ # [{'some_token1': 'Success',
71+ # 'some_token2': 'BadDeviceToken'}]
72+ for key , value in ret [0 ][0 ].items ():
73+ if value .lower () != "success" :
74+ errors .append (value )
6775 if errors :
6876 self .message_user (
6977 request , _ ("Some messages could not be processed: %r" % (", " .join (errors ))),
@@ -73,14 +81,24 @@ def send_messages(self, request, queryset, bulk=False):
7381 if bulk :
7482 # When the queryset exceeds the max_recipients value, the
7583 # send_message method returns a list of dicts, one per chunk
76- try :
77- success = ret [0 ][0 ]["success" ]
78- except TypeError :
79- success = 0
80- for entry in ret [0 ][0 ]:
81- success = success + entry ["success" ]
82- if success == 0 :
83- return
84+ if "results" in ret [0 ][0 ]:
85+ try :
86+ success = ret [0 ][0 ]["success" ]
87+ except TypeError :
88+ success = 0
89+ for entry in ret [0 ][0 ]:
90+ success = success + entry ["success" ]
91+ if success == 0 :
92+ return
93+ else :
94+ # different format, e.g.:
95+ # [{'some_token1': 'Success',
96+ # 'some_token2': 'BadDeviceToken'}]
97+ success = []
98+ for key , value in ret [0 ][0 ].items ():
99+ if value .lower () == "success" :
100+ success .append (key )
101+
84102 elif len (errors ) == len (ret ):
85103 return
86104 if errors :
0 commit comments