Skip to content

IDField

Field of Model for enter identifier of document.

IDField

Bases: Field

Field of Model for enter identifier of document.

Agrs

label: Text label for a web form field. placeholder: Displays prompt text. hide: Hide field from user. disabled: Blocks access and modification of the element. ignored: If true, the value of this field is not saved in the database. hint: An alternative for the placeholder parameter. warning: Warning information. required: Required field. readonly: Specifies that the field cannot be modified by the user. unique: The unique value of a field in a collection.

Source code in src\ramifice\fields\id_field.py
class IDField(Field):
    """Field of Model for enter identifier of document.

    Agrs:
        label: Text label for a web form field.
        placeholder: Displays prompt text.
        hide: Hide field from user.
        disabled: Blocks access and modification of the element.
        ignored: If true, the value of this field is not saved in the database.
        hint: An alternative for the `placeholder` parameter.
        warning: Warning information.
        required: Required field.
        readonly: Specifies that the field cannot be modified by the user.
        unique: The unique value of a field in a collection.
    """

    def __init__(  # noqa: D107
        self,
        label: str = "",
        placeholder: str = "",
        hide: bool = False,
        disabled: bool = False,
        ignored: bool = False,
        hint: str = "",
        warning: list[str] | None = None,
        required: bool = False,
        readonly: bool = False,
        unique: bool = False,
    ) -> None:
        if constants.DEBUG:
            try:
                if not isinstance(label, str):
                    raise AssertionError("Parameter `default` - Not а `str` type!")
                if not isinstance(disabled, bool):
                    raise AssertionError("Parameter `disabled` - Not а `bool` type!")
                if not isinstance(hide, bool):
                    raise AssertionError("Parameter `hide` - Not а `bool` type!")
                if not isinstance(ignored, bool):
                    raise AssertionError("Parameter `ignored` - Not а `bool` type!")
                if not isinstance(ignored, bool):
                    raise AssertionError("Parameter `ignored` - Not а `bool` type!")
                if not isinstance(hint, str):
                    raise AssertionError("Parameter `hint` - Not а `str` type!")
                if warning is not None and not isinstance(warning, list):
                    raise AssertionError("Parameter `warning` - Not а `list` type!")
                if not isinstance(placeholder, str):
                    raise AssertionError("Parameter `placeholder` - Not а `str` type!")
                if not isinstance(required, bool):
                    raise AssertionError("Parameter `required` - Not а `bool` type!")
                if not isinstance(readonly, bool):
                    raise AssertionError("Parameter `readonly` - Not а `bool` type!")
                if not isinstance(unique, bool):
                    raise AssertionError("Parameter `unique` - Not а `bool` type!")
            except AssertionError as err:
                logger.critical(str(err))
                raise err

        Field.__init__(
            self,
            label=label,
            disabled=disabled,
            hide=hide,
            ignored=ignored,
            hint=hint,
            warning=warning,
            field_type="IDField",
            group="id",
        )

        self.input_type = "text"
        self.value: ObjectId | None = None
        self.placeholder = placeholder
        self.required = required
        self.readonly = readonly
        self.unique = unique
        self.alerts: list[str] = []

    def to_dict(self) -> dict[str, Any]:
        """Convert object instance to a dictionary."""
        json_dict: dict[str, Any] = {}
        for name, data in self.__dict__.items():
            if not callable(data):
                if name == "value" and data is not None:
                    json_dict[name] = str(data)
                else:
                    json_dict[name] = data
        return json_dict

    def to_json(self) -> str:
        """Convert object instance to a JSON string."""
        return orjson.dumps(self.to_dict()).decode("utf-8")

    @classmethod
    def from_dict(cls, json_dict: dict[str, Any]) -> Any:
        """Convert JSON string to a object instance."""
        obj = cls()
        for name, data in json_dict.items():
            if name == "value" and data is not None:
                obj.__dict__[name] = ObjectId(data)
            else:
                obj.__dict__[name] = data
        return obj

    @classmethod
    def from_json(cls, json_str: str) -> Any:
        """Convert JSON string to a object instance."""
        json_dict = orjson.loads(json_str)
        return cls.from_dict(json_dict)

from_dict(json_dict) classmethod

Convert JSON string to a object instance.

Source code in src\ramifice\fields\id_field.py
@classmethod
def from_dict(cls, json_dict: dict[str, Any]) -> Any:
    """Convert JSON string to a object instance."""
    obj = cls()
    for name, data in json_dict.items():
        if name == "value" and data is not None:
            obj.__dict__[name] = ObjectId(data)
        else:
            obj.__dict__[name] = data
    return obj

from_json(json_str) classmethod

Convert JSON string to a object instance.

Source code in src\ramifice\fields\id_field.py
@classmethod
def from_json(cls, json_str: str) -> Any:
    """Convert JSON string to a object instance."""
    json_dict = orjson.loads(json_str)
    return cls.from_dict(json_dict)

to_dict()

Convert object instance to a dictionary.

Source code in src\ramifice\fields\id_field.py
def to_dict(self) -> dict[str, Any]:
    """Convert object instance to a dictionary."""
    json_dict: dict[str, Any] = {}
    for name, data in self.__dict__.items():
        if not callable(data):
            if name == "value" and data is not None:
                json_dict[name] = str(data)
            else:
                json_dict[name] = data
    return json_dict

to_json()

Convert object instance to a JSON string.

Source code in src\ramifice\fields\id_field.py
def to_json(self) -> str:
    """Convert object instance to a JSON string."""
    return orjson.dumps(self.to_dict()).decode("utf-8")