Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

105
Vistas
cómo crear una solicitud de publicación usando api rápido y sqlalchemy mientras se trabaja con una restricción de clave externa

Esta es la primera vez que uso FastApi el marco de Python, y estoy tratando de entender cómo configurar correctamente mis tablas y la lógica para poder realizar una solicitud posterior que cree una instancia de la tabla que tiene la clave externa.

modelos.py

 class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) first_name = Column(Text, nullable=False) last_name = Column(Text, nullable=False) class Post(Base): __tablename__ = "posts" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=False)

esquemas.py

 class UserBase(BaseModel): name: str class Posts(BaseModel): id: int user_id: int class Config: orm_mode = True class User(UserBase): id: int class Config: orm_mode = True

repositorio.py

 def create_post(db: Session, user_id: int, post: schemas.Post): get_user_id = db.query(models.User).filter(models.User.id == user_id).first() post = models.Post( id=post.id, user_id=get_user_id.id, ) db.add(post) db.commit() db.refresh(post) return post

punto final

 router = APIRouter() @router.post("/posts.", response_model=Post) async def create_post(user_id, post: Post, db): return repository.create_post(db=db, user_id=user_id, post=post)

Interfaz

 try { const url = "http://localhost:8000/posts"; const data = {"user_id": 2}; const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(data) }) ...

El user_id probado anteriormente en el front-end existe en la base de datos y el punto final para crear un usuario funciona bien, pero solo el que crea una post que pertenece a un usuario específico no funciona, devuelve un 422 (Unprocessable Entity)

¿Hay algo que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su punto final actualmente requiere 2 cosas: un user_id de usuario y datos de un esquema de Post . (También solicita db que no sé cómo administra su acceso a su db) ( create_post(user_id, post: Post, db) )

Por lo tanto, su cuerpo debe contener los valores de Publicación, a saber: id y user_id . En este punto, nos damos cuenta de que pregunta dos veces en su punto final user_id . Por lo tanto, puede eliminar su primer user_id de usuario de su punto final, ya que está incluido en su esquema de Post .

En el front-end, sus data contienen solo un dato: {"user_id": 2} . Falta el valor de id que se solicita a través de su esquema de Post . Entonces, dado que falta un dato, se genera un error 422.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda