def add_serializer(table):
fields = table.fields.all()
attributes = {}
for field in fields:
args = {
"label": field.alias
}
if not field.required:
args["default"] = None
args["allow_null"] = True
if field.type == 3:
args["format"] = "%Y-%m-%dT%H:%M:%S"
elif field.type == 6:
args["protocol"] = "IPv4"
f = FIELD_TYPE_MAP[field.type](**args)
if(field.is_multi):
attributes[field.name] = serializers.ListField(default=[], child=f)
else:
attributes[field.name] = f
# if(field.type == 0):
# attributes["validate_{}".format(field.name)] = empty_none
#创建者拿到视图aQ!
# attributes["S-creator"] = serializers.CharField(read_only=True, default=serializers.CurrentUserDefault())
attributes["S-creation-time"] = serializers.DateTimeField(read_only=True, format="%Y-%m-%dT%H:%M:%S",
default=datetime.datetime.now)
attributes["S-last-modified"] = serializers.CharField(default=None, allow_null=True, read_only=True, label="最后修改人")
serializer = type(table.name, (Serializer, ), attributes)
setattr(app_serializers, table.name, serializer)