我通过网关发送 SMS 消息并获得带有 SMS 参考 ID 的回复。
12345678-2
我将其存储在我的数据库中。
网关然后调用我的服务器上的一个 URL 与一个交货收据和它所属的文本的 ID...
12345678
注意区别!所以这是我需要将 ID 与数据库中的 ID 匹配的问题。出于某种原因,此特定网关仅发回 ID 的第一部分,省略了破折号后的所有内容-
我的第一个想法是在存储之前删除数据库中的 ID 而没有破折号,但这对我来说不是一个选项,因为需要存储整个内容。其他网关使用此代码我无法更改此功能。
我的第二个选择是通过循环所有记录来匹配下面的 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
但我不能让自己这样做,它闻起来很糟糕!
我对其他想法持开放态度?
谢谢你。