Я пытаюсь реализовать конечную точку для получения электронной почты от API mailgun.com. По сути, когда электронное письмо отправляется в список рассылки, они вызывают вашу конечную точку https://host/messages/
с запросом POST.
Проблема в том, что они не используют стандартный REST и некоторые ключи содержат дефисы. Это пример запроса, который я получаю:
{
'Date': [
'Fri, 26 Apr 2013 11:50:29 -0700'
],
'From': [
'Bob <[email protected]>'
],
'Sender': [
'[email protected]'
],
'Subject': [
'Re: Sample POST request'
],
'To': [
'Alice <[email protected]>'
],
'body-plain': [
'Hi Alice,\n\nThis is Bob.\n\nI also attached a file.\n\nThanks,\nBob\n\nOn 04/26/2013 11:29 AM, Alice wrote:\n> Hi Bob,\n>\n> This is Alice. How are you doing?\n>\n> Thanks,\n> Alice\n\n'
],
Я пишу сериализацию и мне удается получить все поля без дефисов, такие как From
, To
и т. д. Но после нескольких часов испытаний мне не удается получить body-plain
.
Я пробовал это:
class MessageSerializer(serializers.ModelSerializer):
Text = serializers.CharField(source='body-plain')
class Meta:
model = Message
fields = ['From', 'To', 'Subject', 'Text']
но получаю ошибку {"Text":["This field is required."]}
Мне кажется, что Django rest, возможно, модифицирует ключи. Кто-нибудь знает, как справиться с этой проблемой?