File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -55,7 +55,10 @@ class BaseUpdateModel(BaseCreateModel):
5555
5656def past_or_today_validator (value : date | datetime ) -> date | datetime :
5757 if isinstance (value , datetime ):
58- if value > datetime .now (timezone .utc ):
58+ if value .tzinfo is None :
59+ if value > datetime .now ():
60+ raise ValueError ("Datetime must be in the past or present." )
61+ elif value > datetime .now (timezone .utc ):
5962 raise ValueError ("Datetime must be in the past or present." )
6063 elif value > date .today ():
6164 raise ValueError ("Date must be today or in the past." )
Original file line number Diff line number Diff line change @@ -92,6 +92,10 @@ def state_validator(v):
9292
9393
9494def phone_validator (phone_number_str ):
95+ # Allow optional phone fields: treat None or blank as no value.
96+ if phone_number_str is None :
97+ return None
98+
9599 phone_number_str = phone_number_str .strip ()
96100 if phone_number_str :
97101 parsed_number = phonenumbers .parse (phone_number_str , "US" )
Original file line number Diff line number Diff line change @@ -191,6 +191,9 @@ def add_thing(
191191 thing_type = get_thing_type_from_request (request )
192192
193193 # Extract data for related tables
194+ # Normalize Pydantic models to dictionaries so we can safely mutate with .pop()
195+ if isinstance (data , BaseModel ):
196+ data = data .model_dump ()
194197
195198 # ---------
196199 # BEGIN UNIVERSAL THING RELATED TABLES
You can’t perform that action at this time.
0 commit comments