UnisKB/apps/common/util/field_message.py

73 lines
2.1 KiB
Python
Raw Normal View History

2024-03-04 02:12:18 +00:00
# coding=utf-8
"""
@project: maxkb
@Author
@file field_message.py
@date2024/3/1 14:30
@desc:
"""
2025-01-13 03:15:51 +00:00
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})
2024-03-04 02:12:18 +00:00
class ErrMessage:
@staticmethod
def char(field: str):
2025-01-13 03:15:51 +00:00
return reset_message_by_field(field, serializers.CharField)
2024-03-04 02:12:18 +00:00
@staticmethod
def uuid(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.UUIDField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def integer(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.IntegerField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def list(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.ListField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def boolean(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.BooleanField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def dict(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.DictField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def float(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.FloatField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def json(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.JSONField.default_error_messages)
2024-03-04 02:12:18 +00:00
@staticmethod
def base(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.Field.default_error_messages)
@staticmethod
def date(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.DateField.default_error_messages)
@staticmethod
def image(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.ImageField.default_error_messages)
@staticmethod
def file(field: str):
2025-01-13 03:15:51 +00:00
return reset_messages(field, serializers.FileField.default_error_messages)