form:BaseChoicesOption: do not declare choices to allow other related fields to come first in subclasses

This commit is contained in:
axolotle 2023-11-13 16:51:25 +01:00
parent d7166bf77f
commit 90aa6b86f1

View file

@ -1317,9 +1317,10 @@ class FileOption(BaseInputOption):
class BaseChoicesOption(BaseInputOption):
# FIXME probably forbid choices to be None?
filter: Union[JSExpression, None] = None # filter before choices
choices: Union[dict[str, Any], list[Any], None]
# We do not declare `choices` here to be able to declare other fields before `choices` and acces their values in `choices` validators
# choices: Union[dict[str, Any], list[Any], None]
@validator("choices", pre=True)
@validator("choices", pre=True, check_fields=False)
def parse_comalist_choices(value: Any) -> Union[dict[str, Any], list[Any], None]:
if isinstance(value, str):
values = [value.strip() for value in value.split(",")]