[Python] Applicazione WEB con Python e Postgresql
Daniele Varrazzo
piro a develer.com
Mar 23 Set 2014 17:25:35 CEST
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
Maggiori informazioni sulla lista
Python