Как сохранить измененную дату атрибута с помощью sqlalchemy? [Дубликат]

Это действительно замечательный учебник для тех, кто его хочет. Вот пример кода:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"myIdentifer]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        myViewController *destViewController = segue.destinationViewController;
        destViewController.name = [object objectAtIndex:indexPath.row];
    }
}

3
задан Nathaniel Ford 22 September 2015 в 00:01
поделиться

2 ответа

Чтение «Изменение поведения атрибута» и «События ORM» - хорошее начало при попытке решить этот тип проблемы.

Один из способов для этого нужно было установить прослушиватель событий, который обновляет метку времени:

@event.listens_for(MyModel.verified, 'set')
def mymodel_verified_set(target, value, oldvalue, initiator):
    """Set verified_at"""
    if value != oldvalue:
        target.verified_at = datetime.datetime.utcnow() if value else None
2
ответ дан Ilja Everilä 24 August 2018 в 23:41
поделиться

Я думаю, что вы ищете Гибридное свойство .

from sqlalchemy.ext.hybrid import hybrid_property

class VerifiedAsset(Base):
    id = Column(Integer, primary_key=True)
    verified_at = Column('verified_at', String(24))

    @hybrid_property
    def verification(self):
        return self.verified_at;

    @verification.setter
    def verification(self, value):
        if value and not self.verification:
            self.verified_at = datetime.datetime.utcnow
        if not value and self.verification:
            self.verified_at = None
        # Presumably you want to handle your other cases here

Вы хотите обновить свое значение verified_at определенным образом на основе некоторых входящих новое значение. Используйте свойства, чтобы обернуть базовое значение и обновить только тогда, когда это уместно, и только то, что вы на самом деле сохраняете в db.

6
ответ дан Nathaniel Ford 24 August 2018 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: