MaxKB/apps/common/util/field_message.py
2025-01-13 11:15:51 +08:00

73 lines
2.1 KiB
Python
Raw 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 field_message.py
@date2024/3/1 14:30
@desc:
"""
from django.utils.functional import lazy
from rest_framework import serializers
def value_(field, value):
return f"{field}{value}"
def reset_messages(field, messages):
return {key: lazy(value_, str)(field, messages.get(key)) for key in messages}
def reset_message_by_field(field_text, field):
return reset_messages(field_text, {**field.default_error_messages, **field.__bases__[0].default_error_messages})
class ErrMessage:
@staticmethod
def char(field: str):
return reset_message_by_field(field, serializers.CharField)
@staticmethod
def uuid(field: str):
return reset_messages(field, serializers.UUIDField.default_error_messages)
@staticmethod
def integer(field: str):
return reset_messages(field, serializers.IntegerField.default_error_messages)
@staticmethod
def list(field: str):
return reset_messages(field, serializers.ListField.default_error_messages)
@staticmethod
def boolean(field: str):
return reset_messages(field, serializers.BooleanField.default_error_messages)
@staticmethod
def dict(field: str):
return reset_messages(field, serializers.DictField.default_error_messages)
@staticmethod
def float(field: str):
return reset_messages(field, serializers.FloatField.default_error_messages)
@staticmethod
def json(field: str):
return reset_messages(field, serializers.JSONField.default_error_messages)
@staticmethod
def base(field: str):
return reset_messages(field, serializers.Field.default_error_messages)
@staticmethod
def date(field: str):
return reset_messages(field, serializers.DateField.default_error_messages)
@staticmethod
def image(field: str):
return reset_messages(field, serializers.ImageField.default_error_messages)
@staticmethod
def file(field: str):
return reset_messages(field, serializers.FileField.default_error_messages)