ゲートウェイ経由で SMS メッセージを送信し、SMS の参照 ID を含む返信を受け取ります。
12345678-2
これをデータベースに保存します。
次に、ゲートウェイは、配信レシートとそれが属するテキストの ID を使用して、サーバー上の URL を呼び出します...
12345678
違いに注目!したがって、IDをDBのIDと一致させる必要がある問題は次のとおりです。何らかの理由で、この特定のゲートウェイは ID の最初の部分のみを送り返し、ダッシュの後の部分はすべて省略します-
最初のアイデアは、保存する前にダッシュなしでデータベースの ID を削除することでしたが、すべてを保存する必要があるため、これはオプションではありません。他のゲートウェイがこのコードを使用しています。この機能を変更することはできません。
私の 2 番目のオプションは、すべてのレコードをループして、以下のように ID を照合することでした。
class MessageManager(models.Manager):
def get_matching_message(self, ref_ID):
for gateway in Gateway.objects.all():
try:
return Message.objects.get(
gateway_message_id=ref_ID
)
except Message.DoesNotExist:
pass
しかし、私はこれをする気にはなれません、それは悪臭です !
私は他のアイデアを受け入れますか?
ありがとうございました。