Я смотрю на проблемы, возникающие при преобразовании кодовой базы от использования патча движка приложения к использованию django-nonrel .
Одна из вещей, которая происходит в этомБаза кода несколько раз перебирает все свойства объекта.Например, компаратор, конструктор копирования, эквивалент __str__ и т. Д.
Упрощенный пример:
def compare_things(thing_a, thing_b):
'''Compare two things on properties not in Thing.COMPARE_IGNORE_PROPS'''
if type(thing_a) != type(thing_b): return "Internal error"
for prop in Thing.properties():
if prop not in Thing.COMPARE_IGNORE_PROPS:
attr_a = getattr(thing_a, prop)
attr_b = getattr(thing_b, prop)
if attr_a != attr_b:
return prop + ": " + str(attr_a) + " is not equal to " + str(attr_b)
return ''
Однако функция properties () взята из google.appengine.ext.db.Модель.
Если я хочу использовать django-nonrel, все мои объекты модели будут вместо django.db.models.Model.
Есть ли эквивалентная функциональность в этом классе?