[Python] Mappare una classe ad una vista con SQLObject

Christian grullonet a alice.it
Sab 20 Set 2008 22:12:21 CEST


Salve a tutti,
da un po di giorni mi sto cimentando con turboGears e sto incontrando
problemi a mappare una classe ad una vista del mio database
(Postgresql).
Il mio database di esercizio ha una tabella:

CREATE TABLE utente
(
  id serial NOT NULL,
  user_name character varying(20) NOT NULL,
  first_name text,
  middle_initial character varying(1),
  last_name text,
  CONSTRAINT utente_pkey PRIMARY KEY (id),
  CONSTRAINT utente_user_name_key UNIQUE (user_name)
)

ed una vista:

CREATE OR REPLACE VIEW v_utente AS 
 SELECT u.id, u.user_name AS uname, u.first_name AS fname
   FROM utente u;

Nel model vorrei mappare due classi direttamente dal database con
sqlmeta e l'attributo formDatabase:

class Utente(SQLObject):
	class sqlmeta:
		fromDatabase=True

class vutente2(SQLObject):
	class sqlmeta:
		fromDatabase=True
		table="vutente2"
		idName="id"

Il problema è proprio sulla vista che mi riporta sempre il seguente
errore quando eseguo il comando sql-admin shell:

assert primaryKey, "No primary key found in table %r" % tableName

Leggendo sulla documentazione di SQLObject, ho visto che uno dei vincoli
è la necessità di avere un solo campo come PK, ma la vista si appoggia
ad una tabella (è la stessa) con un unico campo di PK.

Qualcuno sa dirmi come fare per creare una classe che mappi una VISTA?

Grazie e spero di essere stato sufficentemente chiaro

Christiam


-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part
Url:         http://lists.python.it/pipermail/python/attachments/20080920/5144cf81/attachment.pgp 


Maggiori informazioni sulla lista Python