UnisKB/apps/common/forms/base_form.py

31 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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}