File tree Expand file tree Collapse file tree 3 files changed +18
-2
lines changed Expand file tree Collapse file tree 3 files changed +18
-2
lines changed Original file line number Diff line number Diff line change 33
44class EncryptedCharField (models .CharField ):
55 encrypted = True
6+ queries = []
7+
8+ def __init__ (self , * args , ** kwargs ):
9+ self .queries = kwargs .pop ("queries" , [])
10+ super ().__init__ (* args , ** kwargs )
Original file line number Diff line number Diff line change @@ -448,7 +448,17 @@ def _get_encrypted_fields_map(self, model):
448448 fields = model ._meta .fields
449449 return {
450450 "fields" : [
451- {"path" : field .name , "bsonType" : field .db_type (conn )}
451+ {
452+ "path" : field .name ,
453+ "bsonType" : field .db_type (conn ),
454+ # Specify queries in the field definition as a list of query
455+ # types e.g. queries=["equality", "range"]
456+ ** (
457+ {"queries" : [{"queryType" : query } for query in field .queries ]}
458+ if hasattr (field , "queries" ) and field .queries
459+ else {}
460+ ),
461+ }
452462 for field in fields
453463 if getattr (field , "encrypted" , False )
454464 ]
Original file line number Diff line number Diff line change 66
77class Person (EncryptedModel ):
88 name = models .CharField ("name" , max_length = 100 )
9- ssn = EncryptedCharField ("ssn" , max_length = 11 )
9+ ssn = EncryptedCharField ("ssn" , max_length = 11 , queries = ["equality" ])
10+ ssn2 = EncryptedCharField ("ssn" , max_length = 11 , queries = ["equality" ])
1011
1112 def __str__ (self ):
1213 return self .name
You can’t perform that action at this time.
0 commit comments