new: add field type ConstField

This commit is contained in:
uburuntu 2021-07-30 00:47:46 +03:00
parent 29d2ffc9ed
commit 972b82cd57
No known key found for this signature in database
GPG key ID: 59E643252F903BE1

View file

@ -2,7 +2,7 @@ import abc
import datetime
import weakref
__all__ = ('BaseField', 'Field', 'ListField', 'DateTimeField', 'TextField', 'ListOfLists')
__all__ = ('BaseField', 'Field', 'ListField', 'DateTimeField', 'TextField', 'ListOfLists', 'ConstField')
class BaseField(metaclass=abc.ABCMeta):
@ -192,5 +192,13 @@ class TextField(Field):
def deserialize(self, value, parent=None):
if value is not None and not isinstance(value, str):
raise TypeError(f"Field '{self.alias}' should be str not {type(value).__name__}")
raise TypeError(f"Field {self.alias!r} should be str not {type(value).__name__!r}")
return value
class ConstField(Field):
def __init__(self, default=None, **kwargs):
super(ConstField, self).__init__(default=default, **kwargs)
def __set__(self, instance, value):
raise TypeError(f"Field {self.alias!r} is not mutable")