NOTATNIK
  • Pages
    about certificates license
  • Categories
    academic general programming software tools list all
  • Archives
    2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 all
  • Tags
News and Notes

Last entry:

[18] Zmiana atrybutów instancji klasy przed zapisem w sqlalchemy

Published: wtorek, 12 maja 2015
By Piotr Czaja

In programming. tags: sqlalchemy pyramid

Jeśli jest zdefiniowany model pyramid z mapowniaem do bazy danych dla klasy w sqlalchemy to instancje tworzy się przez:

zmiennaA = NazwaKlasy(zmienna1=wartość, zmienna2=wartość)

potem zapisać ją można w sesji:

DBSession.add(zmiennaA)
DBSession.commit()

co wprowadza ją trwale do bazy danych.

Czasami jednak nie można zainicjować zmiennejA ze wszystkimi wartościami atrybutów lub trzeba je utworzyć dynamicznie. Wtedy można zainicjować instancję:

zmiennaA = NazwaKlasy()

i dalej zmienić jej artrybuty.

Problem w tym że sqlalchemy zignoruje te modyfikacje i zapisze do bazy danych pusty rekord, beż żadnej wartości (poza domyślnymi).

Można jednak wykorzystać setattr():

setattr(zmiennaA, zmienna1, wartość)

i wtedy wartości zmienionych atrybutów będą zapisane do bazy danych.

links

Piotr Czaja Projects

social

atom feed Piotr Czaja Authors