Il 23 settembre 2014 17:25, Daniele Varrazzo <p...@develer.com> ha scritto: > > Puoi comunque definire i tuoi oggetti dichiarando i campi che hanno, usando > "primary_key=True" per uno qualunque di loro (altrimenti Django assume che > c'e' un campo id che fa da pkey) ed evitando di usare il suo sql per la > generazione delle tabelle. Non testato (e' da un po' che non scrivo django): > > class MiaCosa(models.Model): > key1 = models.IntegerField(primary_key=True) > key2 = models.IntegerField() # parte della pkey ma django non lo sa. > > class AltraCosa(models.Model): > quellacosa = models.ForeignKey(MiaCosa, db_column="miacosa_key1") > key2 = models.IntegerField(db_column="miacosa_key2") # parte della > fkey ma django non lo sa. > > Ovviamente tu lo sai che la chiave e' (key1, key2) e userai > MiaCosa.objects.get(key1=a, key2=b) per prendere un solo oggetto. Hai delle > limitazioni perche' la fkey non e' definita bene, tipo non potrai usare > AltraCosa.objects.filter(quellacosa=miacosa). Ma il resto di django funziona > bene lo stesso. Lo devi solo prendere un po' per il culo :)
Confermo che funziona, ho dovuto usarlo anche io su una tabella consultata via Django ma non gestita (managed) dal mio applicativo La chiave era effettivamente composta e usato trucchi in linea con quelli di Daniele ciao, Marco _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python