Добавлен класс CoreViewSet и тесты к нему

This commit is contained in:
2026-07-16 11:52:51 +03:00
parent 4ce8a1ba58
commit b713a2124b
32 changed files with 2263 additions and 55 deletions

View File

@@ -9,3 +9,4 @@
"""
from .date_utils import DateUtils
from .model_utils import ModelUtils

View File

@@ -0,0 +1,53 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса ModelUtils
"""
from typing import Any
from django.db.models import Model
from django.forms import model_to_dict
class ModelUtils:
"""
Реализует служебные функции работы с моделями данных
"""
@classmethod
def concat_data(cls, data: dict[str, Any] | Model, target: dict[str, Any], ) -> None:
"""
Объединяет данные
:param data: Источник данных
:param target: Приемник
"""
# Получаем объект данных
if isinstance(data, Model):
source = model_to_dict(data)
else:
source = data
# noinspection PyUnresolvedReferences
for key, value in source.items():
if key not in target:
target[key] = value
@classmethod
def update_data(cls, instance: dict[str, Any] | Model, validated_data: dict[str, Any]) -> None:
"""
Обновляет данные объекта
:param instance: Объект
:param validated_data: Данные для обновления
"""
for attr, value in validated_data.items():
if hasattr(instance, attr):
setattr(instance, attr, value)