def load_from_database(cls, _id, **kwargs): select_columns = Kohde.other_columns query = ("SELECT %s FROM %s WHERE %s = %%s" % (', '.join(select_columns), Kohde.table_name, Kohde.id_column)) my_cursor = _cursor = kwargs.get('_cursor', None) row = None super_object = None try: if my_cursor is None: my_cursor = cls.conn.cursor() kwargs['_cursor'] = my_cursor super_object = super(Kohde, cls).load_from_database(_id, **kwargs) my_cursor.execute(query, (int(_id),)) row = my_cursor.fetchone() except: if _cursor is None: cls.conn.rollback() raise else: if _cursor is None: cls.conn.commit() for i, k in enumerate(select_columns): setattr(super_object, k, row[i]) # # Jokaiseen kohteeseen voi liittyä kommentti, joten ne voidaan # käyttäjän avuksi ladata tässä. # kommentit = [] for kommentti_id in Kommentti.load_ids(kohde_id=_id): kommentit.append(Kommentti.load_from_database(kommentti_id)) super_object.kommentit = kommentit return super_object
#!/usr/bin/python import os import pwd import psycopg2 from DatabaseObject import DatabaseObject from Kommentti import Kommentti dbuser = pwd.getpwuid(os.getuid()).pw_name dbname = dbuser conn = psycopg2.connect("dbname=%s user=%s" % (dbname, dbuser)) DatabaseObject.setDatabaseConnection(conn) kuva = Kommentti.load_from_database(3) print "kommentti: %d -- %s" % (kuva.kommentti_id, kuva.teksti) ids = Kommentti.load_ids(kohde_id=10) for i in ids: print " kommentti(kohde_id=10): %d" % (i)
import psycopg2 from DatabaseObject import DatabaseObject from Kommentti import Kommentti from Resepti import Resepti dbuser = pwd.getpwuid(os.getuid()).pw_name dbname = dbuser conn = psycopg2.connect("dbname=%s user=%s" % (dbname, dbuser)) DatabaseObject.setDatabaseConnection(conn) for id in Resepti.load_ids(): o = Resepti.load_from_database(id) print ": %d -- %s" % (o.resepti_id, o.nimi) for id in Kommentti.load_ids(): o = Kommentti.load_from_database(id) print ": %d -- %s %s" % (o.kommentti_id, o.aika, o.teksti) # print "new" # r = Resepti2.new('testi_' + str(time.time()), 'valmista') # print "update" # r.valmistusohje = r.valmistusohje + "_update" # r.save() # print "delete" # Resepti2.delete(r.resepti_id) print "Korinttikeksit" k = Resepti.load_from_database(68)