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

Rispondere a