# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: 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)