Сортировка свойства в flask -админ списка - PullRequest
1 голос
/ 22 января 2020

У меня есть модель с полем даты рождения, я использовал декоратор python @property для создания поля возраста, я хотел бы иметь возможность сортировать по возрасту в представлении списка flask -admin, но Я получил следующую ошибку:

sqlalchemy.exc.ArgumentError: SQL expression object expected, got object of type <class 'property'> instead

Вот как я это делаю:

class User(db.model, UserMixin):
...
data_de_nascimento = db.Column(db.Date)
...
@property
def idade(self):
    today = date.today()
    born = self.data_de_nascimento
    return today.year - born.year - ((today.month, today.day) < (born.month, born.day))

Я пытался изменить @property для SQLAlchemy @hybrid_property, но я не уверен если это правильный подход, так как я действительно не понимаю его. Тем не менее, я получил следующую ошибку: (Я пытался читать документы, но не имел большого смысла в них)

AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with User.data_de_nascimento has an attribute 'year'

Я не уверен, как go об этом, может кто-то указать мне на простое рабочее решение?

Моей первой идеей было сохранить возраст непосредственно в базе данных, но я не знаю, как обновлять его каждый раз, когда у пользователя день рождения.

Я также думаю, что это будет полезно сработало бы, если бы я мог изменить запрос, сгенерированный Flask -admin, и просто отсортировать по DOB, а не по возрасту, но я не нашел способа сделать это.

...