django конвертирует экземпляр модели в dict

Я новичок в Джанго. И мне нужно преобразовать экземпляр Model в словарь, аналогичный Model.objects.values, с полями отношений. Поэтому я пишу небольшую функцию для этого:

def _get_proper(instance, field):
    if field.__contains__("__"):
        inst_name = field.split("__")[0]
        new_inst = getattr(instance, inst_name)
        next_field = "__".join(field.split("__")[1:])
        value = _get_proper(new_inst, next_field)
    else:
        value = getattr(instance, field)

    return value

def instance_to_dict(instance, fields):
    return {key: _get_proper(instance, key) for key in fields}

Итак, я могу использовать его таким образом:

user_obj = User.objects.select_related(...).get(...)
print instance_to_dict(user_obj, ["name", "city__name", "city_id"])

Можете ли вы предложить лучшее решение? Спасибо! Постскриптум Извините за мой английский.

Ответы на вопрос(1)

Ваш ответ на вопрос