@@ -22,19 +22,11 @@ def deconstruct(self):
2222 return name , path , args , kwargs
2323
2424 def get_prep_value (self , value ):
25- if value is None :
26- return None
27- # Accept int for compatibility with Django's test suite which has many
28- # instances of manually assigned integer IDs, as well as for things
29- # like settings.SITE_ID which has a system check requiring an integer.
30- if isinstance (value , (ObjectId | int )):
25+ if value is None or isinstance (value , ObjectId ):
3126 return value
3227 try :
3328 return ObjectId (value )
3429 except errors .InvalidId as e :
35- # A manually assigned integer ID?
36- if isinstance (value , str ) and value .isdigit ():
37- return int (value )
3830 raise ValueError (f"Field '{ self .name } ' expected an ObjectId but got { value !r} ." ) from e
3931
4032 def get_internal_type (self ):
@@ -46,14 +38,11 @@ def to_python(self, value):
4638 try :
4739 return ObjectId (value )
4840 except errors .InvalidId :
49- try :
50- return int (value )
51- except ValueError :
52- raise exceptions .ValidationError (
53- self .error_messages ["invalid" ],
54- code = "invalid" ,
55- params = {"value" : value },
56- ) from None
41+ raise exceptions .ValidationError (
42+ self .error_messages ["invalid" ],
43+ code = "invalid" ,
44+ params = {"value" : value },
45+ ) from None
5746
5847 @cached_property
5948 def validators (self ):
0 commit comments