File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed
django_mongodb_backend/fields Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change 11import difflib
22
33from django .core import checks
4- from django .core .exceptions import FieldDoesNotExist
4+ from django .core .exceptions import FieldDoesNotExist , ValidationError
55from django .db import models
66from django .db .models .fields .related import lazy_related_operation
77from django .db .models .lookups import Transform
@@ -134,6 +134,11 @@ def get_transform(self, name):
134134
135135 def validate (self , value , model_instance ):
136136 super ().validate (value , model_instance )
137+ if not isinstance (value , self .embedded_model ):
138+ raise ValidationError (
139+ f"Expected instance of type { self .embedded_model !r} , not { type (value )!r} ."
140+ )
141+
137142 for field in self .embedded_model ._meta .fields :
138143 attname = field .attname
139144 field .validate (getattr (value , attname ), model_instance )
Original file line number Diff line number Diff line change @@ -50,6 +50,16 @@ def test_validate(self):
5050 with self .assertRaisesMessage (ValidationError , msg ):
5151 obj .full_clean ()
5252
53+ def test_validate_wrong_model_type (self ):
54+ obj = Holder (data = Library ())
55+ msg = (
56+ "{'data': [\" Expected instance of type "
57+ "<class 'model_fields_.models.Data'>, not "
58+ "<class 'model_fields_.models.Library'>.\" ]}"
59+ )
60+ with self .assertRaisesMessage (ValidationError , msg ):
61+ obj .full_clean ()
62+
5363
5464class ModelTests (TestCase ):
5565 def test_save_load (self ):
You can’t perform that action at this time.
0 commit comments