Skip to content

Commit 6afa93f

Browse files
authored
Merge pull request #75 from amyasnikov/fix_68
fix ValidationError on empty form rendering
2 parents 4c65566 + e20abe4 commit 6afa93f

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

django_pydantic_field/v2/forms.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ def to_python(self, value: ty.Any) -> ty.Any:
8080
return value
8181

8282
def prepare_value(self, value):
83+
if value is None:
84+
return None
85+
8386
if isinstance(value, InvalidJSONInput):
8487
return value
8588

tests/v2/test_forms.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from django.forms import Form, modelform_factory
1010

1111
from tests.conftest import InnerSchema
12-
from tests.test_app.models import SampleForwardRefModel, SampleSchema
12+
from tests.test_app.models import SampleForwardRefModel, SampleSchema, ExampleSchema
1313

1414
fields = pytest.importorskip("django_pydantic_field.v2.fields")
1515
forms = pytest.importorskip("django_pydantic_field.v2.forms")
@@ -19,6 +19,10 @@ class SampleForm(Form):
1919
field = forms.SchemaField(ty.ForwardRef("SampleSchema"))
2020

2121

22+
class NoDefaultForm(Form):
23+
field = forms.SchemaField(schema=ExampleSchema)
24+
25+
2226
@pytest.mark.parametrize(
2327
"raw_data, clean_data",
2428
[
@@ -153,3 +157,8 @@ def test_annotated_acceptance():
153157
field = forms.SchemaField(te.Annotated[InnerSchema, pydantic.Field(title="Inner Schema")])
154158
value = InnerSchema.model_validate({"stub_str": "abc", "stub_list": ["1970-01-01"]})
155159
assert field.prepare_value(value)
160+
161+
162+
def test_form_render_without_default():
163+
form = NoDefaultForm()
164+
form.as_p()

0 commit comments

Comments
 (0)