On 2014-09-23 16:14, Marco Fochesato wrote:
Marco, si ho chiavi primarie che contengono campi multipli (e che belle che
sono...).

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 :)


-- Daniele
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a