1

I want to have a call that takes in both a json form for a 'product' and a image file to save along with it. I've tried doing so with this code

@app.post("/products")
def create_product(product: Product, file:UploadFile = File(...), db: Session = Depends(get_db)):
    
    product_model = models.Products()
    product_model.name = product.product_name
    product_model.description = product.description
    product_model.remaining_quantity = product.start_quantity
    product_model.start_quantity = product.start_quantity
    product_model.limit_per_user = product.limit

    product_model.is_featured = product.is_featured
    product_model.is_open = product.is_open 



    db.add(product_model)
    db.commit()

    return product

Before I added the functionality of saving the image, I realized the call wouldn't work anymore and I keep getting a

{
  "detail": [
    {
      "loc": [
        "body",
        "product"
      ],
      "msg": "value is not a valid dict",
      "type": "type_error.dict"
    }
  ]
}

I don't know why this is the case.

I've tried separating the image upload to another class, and that actually worked, but I want them to be all in one call. Is there something wrong with how I'm writing my method header?

0 Answers0