diff --git a/graphene_pydantic/inputobjecttype.py b/graphene_pydantic/inputobjecttype.py index 95f444d..c7d8a5e 100644 --- a/graphene_pydantic/inputobjecttype.py +++ b/graphene_pydantic/inputobjecttype.py @@ -149,8 +149,6 @@ def resolve_placeholders(cls): model=target_type.model, ) fields_to_update[name] = graphene_field - meta.registry.register_object_field( - cls, name, pydantic_field, model=target_type.model - ) + meta.registry.register_object_field(cls, name, pydantic_field) # update the graphene side of things meta.fields.update(fields_to_update) diff --git a/tests/test_registry.py b/tests/test_registry.py index b8c875f..77ee7d7 100644 --- a/tests/test_registry.py +++ b/tests/test_registry.py @@ -58,3 +58,20 @@ def test_register_object_field_and_get_for_graphene_field(): field = r.get_object_field_for_graphene_field(GraphFoo, "name") assert field is not None assert field.annotation == str + + +def test_register_object_field_nested_model(): + """https://github.com/graphql-python/graphene-pydantic/issues/104""" + + class A(BaseModel): + x: str | None = None + y: list["A"] | None = None + + class P_A(PydanticInputObjectType): + class Meta: + model = A + + try: + P_A.resolve_placeholders() + except TypeError as e: + assert False, f"'10 / 5' raised an exception: {e}"