I’m using the sendgrid api to add recipients, the server response is good,
though nothing is added. and thats because i’m using Django manager shell.
== Steps to Reproduce
I used this script to add the recipient:
{{{
import sendgrid
service = sendgrid.SendGridAPIClient(apikey=API_KEY)
response = service.client.contactdb.recipients.post(
request_body=[{
'created': 1234543,
'email': 'te...@test.co',
'first_name': 'John',
'last_name': '',
'gender': 'M',
}]
)
print(response.status_code)
201
print(response.body)
'{"new_count":1,"updated_count":0,"error_count":0,"error_indices":[],"unmodified_indices":[],"persisted_recipients":["dG90b0B0dXQuY29t"],"errors":[]}\n'
print(response.headers)
{'Server': 'nginx', 'Date': 'Wed, 01 Aug 2018 08:34:11 GMT', 'Content-
Type': 'application/json', 'Content-Length': '149', 'Connection': 'keep-
alive', 'Access-Control-Allow-Methods': 'HEAD, GET, PUT, POST, DELETE,
OPTIONS, PATCH', 'Access-Control-Max-Age': '21600', 'Access-Control-
Expose-Headers': 'Link, Location', 'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'AUTHORIZATION, Content-Type, On-behalf-
of, x-sg-elas-acl, X-Recaptcha', 'Content-Security-Policy': "default-src
https://api.sendgrid.com; frame-src 'none'; object-src 'none'", 'X
-Content-Type-Options': 'nosniff', 'Strict-Transport-Security': 'max-
age=31536000', 'X-Ratelimit-Remaining': '2', 'X-Ratelimit-Limit': '3', 'X
-Ratelimit-Reset': '1533112452', 'Powered-By': 'Mako'}
}}}
I checked if it is added .. and nothing was added
I tried the same thing with postman, and everything worked normally with
no problem, and i found the recipient.
After I tried with requests
{{{
import requests
url = 'https://api.sendgrid.com/v3/contactdb/recipients'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer %s' % API_KEY,
'Cache-Control': 'no-cache',
}
data = json.dumps([{
'created': 1234543,,
'email': 'te...@test.co',
'first_name': 'John',
'last_name': '',
'gender': 'M',
}])
response = requests.post(url, headers=headers, data=data)
response
<Response [201]>
response.text
'{"new_count":1,"updated_count":0,"error_count":0,"error_indices":[],"unmodified_indices":[],"persisted_recipients":["ZXhhbXBsZUBleGFtcGxlLmNvbQ=="],"errors":[]}\n'
}}}
Again .. nothing was added.
and all this time I was running these scripts in Django manager shell in
dev mode,
after when I used the same scripts in python shell, it works correctly,
and I recipient is added, so I have no idea whats going on !!!!!
I also tried with Django manager shell in prod mode, same problem !
NB: The problem also occurs on celery workers with Django code.
== Technical details
* sendgrid-python Version: 5.4.1
* Python Version: 3.7
* Django Version: 2.0.7
--
Ticket URL: <https://code.djangoproject.com/ticket/29621>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* status: new => closed
* resolution: => needsinfo
Comment:
You need to debug the issue yourself and explain why Django is at fault.
If you can't do that, then you could try asking for help in
[wiki:TicketClosingReasons/UseSupportChannels our support channels].
--
Ticket URL: <https://code.djangoproject.com/ticket/29621#comment:1>