[Python] Django e ManyToMany problem

Carlos Catucci carlos.catucci a gmail.com
Mer 9 Maggio 2012 00:11:23 CEST


Scusate ma ho una situazione strampalata che non riesco a risolvere.


La situazione, due tabelle da mettere in relazione tra loro in ManyToMany.

tabella DatePartenze e tabella Prezzi

La prima contiene una seire di date e ciascuna fa riferimento ad un codice
prezzo che si trova su prezzi.

Solo che Prezzi e' una tabella strana. In pratica ciascun prezzo ha piu'
record, raggruppati da un codice.

Esempio

id
codice
voce
giorni
prezzo

dove piu' record (con id differenti) hanno lo stesso codice.

Unirle non e' banale. Ho impostato cosi' il model

class Prezzi(models.Model):
    codiceprezzo = models.IntegerField(db_column='CodicePrezzo',blank=False)
    voce = models.CharField(max_length=30, db_column='Voce', blank=False)
    giorni = models.IntegerField(db_column='giorni', blank=True)
    importo = models.FloatField(db_column='importo', blank=True)
    attiva = models.BooleanField(default=1, db_column='Attiva')

    def __str__(self):
        return self.voce+" "+self.giorni+" "+self.importo

    def __unicode__(self) :
        return u"%s" % (self.voce,self.giorni, self.importo,)

    class Meta:
        verbose_name_plural = "Prezzi"
        db_table = u'Prezzi'
    class Admin:
        pass


class DatePartenze(models.Model):
    idvillaggio = models.ForeignKey(Villaggi, db_column='IdVillaggio')
    idaereoportopartenza = models.ForeignKey(Aereoporti,
db_column='IdAereoportoPartenza', unique=False)
    codiceprezzo = models.ManyToManyField(Prezzi, db_column='CodicePrezzo',
through='Dpcp', symmetrical=True, related_name='dpcp.codiceprezzo')
    datapartenza = models.DateField(db_column='DataPartenza', blank=False)
    idlineaaerea = models.ForeignKey(LineeAeree, db_column='IdLineaaerea')
    giornopartenza = models.TextField(max_length=30,
db_column='GiornoPartenza', blank=False)
    idaereoportopartenzascalo = models.ForeignKey(Aereoporti,
related_name='IdAereoportoPartenzaScalo',
db_column='IdAereoportoPartenzaScalo')
    idaereoportoritorno = models.ForeignKey(Aereoporti,
related_name='IdAereoportoRitorno', db_column='IdAereoportoRitorno')
    dataritorno = models.DateField(db_column='DataRitorno', blank=False)
    giornoritorno = models.TextField(max_length=30,
db_column='GiornoRitorno', blank=False)
    idaereoportoritornoscalo = models.ForeignKey(Aereoporti,
related_name='IdAereoportoRitornoScalo',
db_column='IdAereoportoRitornoScalo')
    trattamento = models.CharField(max_length=30, db_column='Trattamento',
blank=False)
    attiva = models.BooleanField(default=1, db_column='Attiva')

    def __str__(self):
        return self.datapartenza

    def __unicode__(self) :
        return u"%s" % (self.datapatenza,)

    class Meta:
        verbose_name_plural = "Date partenza"
        db_table = u'DatePartenza'

    class Admin:
        pass

Pero' non riesco ad acedere da DatePartenze ne a Prezzi ne alla tanelal
pivot che crea. QUalche hint? Googolare non ha prodotto risultati degni di
nota.

Grazie
Carlos
-- 
If you have no voice, SCREAM! If you have no legs, RUN! If you have no
hope, INVENT!
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120509/b14a7ed1/attachment.html>


Maggiori informazioni sulla lista Python