Type "int | None" is not assignable to type "_ColumnExpressionArgument[Any] | _StarOrOne | None" #1419
-
First Check
Commit to Help
Example Codefrom sqlmodel import Field, Relationship, Session, SQLModel, func, select
class TeamPersonLink(SQLModel, table=True):
team_id: int | None = Field(default=None, foreign_key="team.id", primary_key=True)
person_id: int | None = Field(default=None, foreign_key="person.id", primary_key=True)
class Team(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
people: list["Person"] = Relationship(back_populates="teams", link_model=TeamPersonLink)
class Person(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
teams: list[Team] = Relationship(back_populates="people", link_model=TeamPersonLink)
def get_people_with_team_count(session: Session, page: int = 1, page_size: int = 10):
stmt = (
select(
Person.id,
Person.name,
func.count(TeamPersonLink.team_id).label("team_count")
)
.select_from(Person)
.outerjoin(TeamPersonLink, Person.id == TeamPersonLink.person_id)
.group_by(Person.id)
.limit(page_size)
.offset((page - 1) * page_size)
)
results = session.exec(stmt).all()
return results Description
Operating SystemLinux Operating System DetailsNo response SQLModel Version0.0.24 Python VersionPython 3.12.10 Additional Context |
Beta Was this translation helpful? Give feedback.
Answered by
YuriiMotov
Aug 21, 2025
Replies: 1 comment
-
You can solve this using stmt = (
select(
Person.id,
Person.name,
func.count(col(TeamPersonLink.team_id)).label("team_count")
)
.select_from(Person)
.outerjoin(TeamPersonLink, col(Person.id) == TeamPersonLink.person_id)
.group_by(col(Person.id))
.limit(page_size)
.offset((page - 1) * page_size)
) |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
YuriiMotov
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You can solve this using
col()
: