如何将存储在 models.py 中的密钥与从 POST 请求中获取的密钥进行比较?



我想检查consumer_key的有效性。我已经将一个作为 CharField 存储在 models.py 中,但我如何继续获取它进行比较? 这可能有助于更好地理解问题。

Models.py

class Verification(models.Model):
consumer_key = models.CharField(max_length=30)
hidden_key  = models.CharField(max_length=30 , default="")

Views.py

from .models import Verfication
id = Verification.objects.filter()
if request_key ==id.values('consumer_key'):
consumer = oauth2.Consumer( key=request_key,secret= id.values('hidden_key'))

request_key包含oauth_consumer_key 。

试试这段代码:

from .models import Verfication
try:
id = Verification.objects.get(consumer_key = request_key)
consumer = oauth2.Consumer(key=request_key,secret= id.hidden_key)
except Verification.DoesNotExist:
pass   #token does not exist

这将尝试使用request_key获取对象Verification并在request_key不在数据库中时调用异常。

此外,consumer_key应设置为唯一 模型中使用unique=True以防止同一consumer_key有多个条目。

最新更新