MaxKB/apps/common/forms/base_form.py
2024-08-23 17:47:23 +08:00

31 lines
1.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding=utf-8
"""
@project: maxkb
@Author
@file base_form.py
@date2023/11/1 16:04
@desc:
"""
from typing import Dict
from common.forms import BaseField
class BaseForm:
def to_form_list(self, **kwargs):
return [{**self.__getattribute__(key).to_dict(**kwargs), 'field': key} for key in
list(filter(lambda key: isinstance(self.__getattribute__(key), BaseField),
[attr for attr in vars(self.__class__) if not attr.startswith("__")]))]
def valid_form(self, form_data):
field_keys = list(filter(lambda key: isinstance(self.__getattribute__(key), BaseField),
[attr for attr in vars(self.__class__) if not attr.startswith("__")]))
for field_key in field_keys:
self.__getattribute__(field_key).is_valid(form_data.get(field_key))
def get_default_form_data(self):
return {key: self.__getattribute__(key).default_value for key in
[attr for attr in vars(self.__class__) if not attr.startswith("__")] if
isinstance(self.__getattribute__(key), BaseField) and self.__getattribute__(
key).default_value is not None}