i have bulk update. each message created need call .send(gateway) have tried:
objs = [ message( recipient_number=e.mobile, content=content, sender=e.contact_owner, billee=user, sender_name=sender ).send(gateway) e in query ] # send messages db message.objects.bulk_create(objs) i error:
task request process id 3ab72d3c-5fd8-4b7d-8cc5-e0400455334f raised exception: 'attributeerror("\'nonetype\' object has no attribute \'pk\'",)'
why?
you creating objs list calling send on each element of query. presumably, send not return , list of none. try this:
objs = [] element in query: message = message(**kwargs) message.send(gateway) objs.append(message) message.objects.bulk_create(objs) **kwargs placeholder parameters pass message. can use dictionary or pass parameters in original code.
as side note, list comprehensions indicated when want new list , not side effects (like sending message). here want both, for loop appropriate.