我正在尝试实现一个端点,以从mailgun.com API接收电子邮件。基本上,当电子邮件发送到邮件列表时,他们通过POST请求调用端点https://host/messages/
。
问题在于它们不使用标准REST,并且某些键包含连字符。这是我收到的请求的示例:
{
'Date': [
'Fri,26 Apr 2013 11:50:29 -0700'
],'From': [
'Bob <bob@sandbox9cbe4c2829ed44e98c8ebd0c26129004.mailgun.org>'
],'Sender': [
'bob@sandbox9cbe4c2829ed44e98c8ebd0c26129004.mailgun.org'
],'Subject': [
'Re: Sample POST request'
],'To': [
'Alice <alice@sandbox9cbe4c2829ed44e98c8ebd0c26129004.mailgun.org>'
],'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可能正在修改密钥。有人知道如何处理这个问题吗?