Сопоставление ключей **kwargs с полями экземпляра класса

Сейчас я делают это так:

def save(self, **kwargs):
    keys = kwargs.keys()
    history = PaymentHistory()
    for key in keys:
        if key=="type":
            history.OperationType = kwargs[key]
        elif key=="deviceUuid":
            history.deviceUuid = kwargs[key]
        elif key=="optionId":
            history.optionId = kwargs[key]
        elif key=="clientId":
            history.clientId = kwargs[key]

Но, кажется, должен быть способ получше. я хотел бы видеть что-то типа:

def save(self, **kwargs):
    keys = kwargs.keys()
    history = PaymentHistory()
    for key in keys:
        history[key] = kwargs[key]

В общем, какой-нибудь способ не проверяя каждый ключ постоянно. Экземпляр, в который пытаюсь передать эти данные - это стандартная Django-модель.

Попробуйте через setattr:

setattr(history, key, kwargs[key])
Вернуться на верх