UnisKB/apps/common/forms/base_form.py

31 lines
1.2 KiB
Python
Raw Permalink Normal View History

2025-04-17 10:01:33 +00:00
# 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}