Help Needed with FastAPI Dynamic Enum Integration Error #10110
              
                Unanswered
              
          
                  
                    
                      VaishnaviPandey02
                    
                  
                
                  asked this question in
                Q&A
              
            Replies: 0 comments
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
Uh oh!
There was an error while loading. Please reload this page.
-
from enum import Enum
from typing import List
from sqlalchemy.orm import Session
Assuming these functions are defined to get data from the database
def get_customers(db: Session) -> List[str]:
customers = db.query(CoreCustomer.customer_name).all()
return [customer[0] for customer in customers]
def get_providers(db: Session) -> List[str]:
providers = db.query(WasteProvider.provider_name).all()
return [provider[0] for provider in providers]
def get_waste_categories(db: Session) -> List[str]:
waste_categories = db.query(WasteCategory.category_name).all()
return [category[0] for category in waste_categories]
Function to create dynamic Enums
def create_enum(enum_name: str, enum_values: List[str]):
return Enum(enum_name, {value: value for value in enum_values})
Example usage with database session
def setup_dynamic_enums(db: Session):
global CustomerEnum, ProviderEnum, WasteCategoryEnum
@router.post("/my_endpoint/")
async def my_endpoint(
customer: CustomerEnum = Form(...),
provider: ProviderEnum = Form(...),
waste_category: WasteCategoryEnum = Form(...),
pickup_date_column: str = Form(...),
facility_column: str = Form(...),
waste_name_column: str = Form(...),
weight_column: str = Form(...),
is_recycled_column: str = Form(...),
is_diverted_column: str = Form(...),
unit_column: str = Form(...),
file: UploadFile = File(...),
db: Session = Depends(get_db)
):
pass
in main.py
if name == "main":
db_session = get_db()
setup_dynamic_enums(db_session)
How can I dynamically populate a dropdown in a Swagger UI based on a dynamic enum? I am able to achieve this using a static enum.
Beta Was this translation helpful? Give feedback.
All reactions