[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