Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Field's named 'models' cause issues with resolving pydantic models. #1067

Open
sammaxwellxyz opened this issue Mar 3, 2025 · 0 comments
Open

Comments

@sammaxwellxyz
Copy link

Bug description

Given a schema

datasource db {
    provider = "sqlite"
    url      = "file:./dev.db"
}

generator py {
    provider = "prisma-client-py"
}

model A {
    id  Int @id @default(autoincrement())
    B   B   @relation(fields: [bId], references: [id])
    bId Int
}

model B {
    id     Int @id @default(autoincrement())
    models A[]
}

When importing the generated client an error is thrown

    eval(self.__forward_code__, globalns, localns),
  File "<string>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'A'

I suspect because the 'models' field name is clashing with the models namespace for the pydantic models. Removing the namespace in the client and referring directly to the prisma model allows the import to work
e.g from

class B(bases.BaseB):
    """Represents a B record"""

    id: _int
    models: Optional[List['models.A']] = None

to

class B(bases.BaseB):
    """Represents a B record"""

    id: _int
    models: Optional[List['A']] = None

How to reproduce

Create the above schema as prisma.schema

uv init
uv add prisma
uv run python -m prisma generate --schema prisma.schema
uv run python -c 'import prisma'

Expected behavior

The client to be able to import and retain a field called 'models' on B

Prisma information

see above

Environment & setup

  • OS: Mac
  • Database: MySQL also tested with SQLite
  • Python version: Python 3.10.0, also tested with 3.11 and 3.13
  • Prisma version:
prisma                  : 5.17.0
prisma client python    : 0.15.0
platform                : darwin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant