我具有具有first_name字段的以下模型
from django.db import models
from encrypted_fields import EncryptedCharField
class Customer(models.Model):
first_name = EncryptedCharField(max_len=30)
我使用django-encrypted-fields加密存储在数据库中的数据。因此(我认为),我无法筛选结果。我想这样做
customers = Customer.objects.all().filter(first_name__icontains="George") #George exists as customer
但是我得到一个空清单。我有办法解决这个问题吗?
尽管您可以通过散列解决此问题。例如,如果您的用户提供了用于身份验证的电子邮件和密码,但是您希望将电子邮件加密存储在数据库中,则除了加密的电子邮件之外,还可以存储电子邮件的哈希版本。然后,您可以复制哈希并对其进行查询,只有在找到用户后才对电子邮件进行解密。
return ip_address in BlockedIP.objects.values_list('ip_address', flat=True)
请注意,如果您有很多记录,这很可能效率不高。