I have the following sql alchemy models. I want to insert data into user tables but failed. I use postgres with sqlalchemy and fastapi
class Group(Base):
__tablename__ = "groups"
id = Column(
Integer,
primary_key=True,
server_default=text("nextval('parties_id_seq'::regclass)"),
)
group_type = Column(
Enum(
"user",,
"partner",,
name="group_type",
),
index=True,
)
class User(Group):
__tablename__ = "users"
id = Column(ForeignKey("groups.id"), primary_key=True)
username = Column(String(100), nullable=False, unique=True)
email = Column(String(150), nullable=False, unique=True)
referral_id = Column(ForeignKey("users.id"))
referral = relationship("User", remote_side=[id])
I want to query data based on email and then insert the data into users table but got the following errors:
sqlalchemy.exc.InvalidRequestError: Query contains no columns with which to SELECT from.
Here is what i have tried so far:
def get_user_by_email(db: Session, email: str):
return db.query().filter(user_model.User.email == email).first()
def create_user(db: Session, user: user_pydantic.UserCreate):
db_user = user_model.User(
username=user.username,
email=user.email,
)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
def create_user(user: UserCreate, db: Session = Depends(get_db)):
db_user = user_service.get_user_by_email(db, email=user.email)
if db_user:
return db_user
if db_user:
raise HTTPException(status_code=400, detail="Username already registered")
return user_service.create_user(db=db, user=user)
You need to define the column in your query:
def get_user_by_email(db: Session, email: str):
return db.query(user_model.User).filter(user_model.User.email == email).first()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.