UnisKB/apps/common/util/field_message.py

73 lines
2.1 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 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)