Wie wenden sich Feldbeschränkungen auf der Grundlage des Werttyps in pydantischer V2 an, die auf der Grundlage des Wertt

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie wenden sich Feldbeschränkungen auf der Grundlage des Werttyps in pydantischer V2 an, die auf der Grundlage des Wertt

by Anonymous » 29 Apr 2025, 13:31

Ich habe dieses pydantische Modell mit einem Feld, und dieses Feld könnte entweder ein int oder ein nicht numerischer Wert wie ein STR oder eine Liste sein.

Code: Select all

from pydantic import BaseModel, Field

class Foo(BaseModel):
bar: str | list | int = Field('some string', ge=2)
Ich möchte, dass die Einschränkung ge = 2 nur angewendet wird, wenn der an Bar angegebene Wert ein int.

Code: Select all

foo_instance = Foo(bar='asdf') # constraint should not be applied
foo_instance = Foo(bar=4) # constraint should be applied
< /code>
Der oben genannte Ausprobieren wirft einen Fehler aus:
TypeError: Unable to apply constraint 'ge' to supplied value asdf

Wie stelle ich sicher, dass Pydantic nur versucht, diese Einschränkung anzuwenden, wenn der Wert numerisch ist (oder wenn der Vorgang für diesen Wert ausgeführt werden kann)?

Top