1111from django .db .models .expressions import Case , Exists , OrderBy , When , Window
1212from django .db .models .lookups import Lookup , In
1313from django .db .models import lookups
14+ from django .db .models .fields import BinaryField , Field
15+ from django .core import validators
1416
1517if VERSION >= (3 , 1 ):
1618 from django .db .models .fields .json import (
@@ -187,6 +189,14 @@ def json_HasKeyLookup(self, compiler, connection):
187189
188190 return sql % tuple (rhs_params ), []
189191
192+ def BinaryField_init (self , * args , ** kwargs ):
193+ # Add max_length option for BinaryField, default to max
194+ kwargs .setdefault ('editable' , False )
195+ Field .__init__ (self , * args , ** kwargs )
196+ if self .max_length is not None :
197+ self .validators .append (validators .MaxLengthValidator (self .max_length ))
198+ else :
199+ self .max_length = 'max'
190200
191201ATan2 .as_microsoft = sqlserver_atan2
192202In .split_parameter_list_as_sql = split_parameter_list_as_sql
@@ -200,6 +210,7 @@ def json_HasKeyLookup(self, compiler, connection):
200210NthValue .as_microsoft = sqlserver_nth_value
201211Round .as_microsoft = sqlserver_round
202212Window .as_microsoft = sqlserver_window
213+ BinaryField .__init__ = BinaryField_init
203214
204215if VERSION >= (3 , 2 ):
205216 Random .as_microsoft = sqlserver_random
0 commit comments