From 90aa6b86f1f17808941717b2d32f2dd916f8492d Mon Sep 17 00:00:00 2001 From: axolotle Date: Mon, 13 Nov 2023 16:51:25 +0100 Subject: [PATCH] form:BaseChoicesOption: do not declare `choices` to allow other related fields to come first in subclasses --- src/utils/form.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/form.py b/src/utils/form.py index ab71f43b4..a73ac7df7 100644 --- a/src/utils/form.py +++ b/src/utils/form.py @@ -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(",")]