[Python] filter_vertical e ManyToMany field DJANGO

Marco Cassol cheissol a gmail.com
Lun 14 Set 2009 17:07:17 CEST


Salve a tutti,
vorrei fare in modo che mi si visualizzino i campi delle relazioni m2m.

Per fare questo ho realizza il file admin.py:

> from django.contrib import admin
> from users.models import *
>
> class RegioneOpt(admin.ModelAdmin):
>     fieldsets = (('Metri quadri e nome', {
>                 'fields': (('Mq', 'Nome'),),
>                 'classes': ('collapse',),
>                 }),)
>
> class ProvinciaOpt(admin.ModelAdmin):
>     fields=('Sigla','Nome','Posizione', 'NomeRegione','Dista')
>     filter_vertical =['Dista']
>
> admin.site.register(PROVINCIA, ProvinciaOpt)
> admin.site.register(REGIONE)
> admin.site.register(DISTA)
> admin.site.register(CITTA)
>


In models.py ho:

class CITTA(models.Model):
>     class Meta:
>         db_table = "CITTA"
>         verbose_name_plural = "Filiali"
>     Codice = models.SmallIntegerField(primary_key = True)
>     Nome = models.CharField(max_length= 30)
>     Mq = models.IntegerField()
>
> class PROVINCIA(models.Model):
>     class Meta:
>         db_table = "PROVINCIA"
>         verbose_name_plural = "Province"
>     Sigla = models.CharField(max_length=2, primary_key=True)
>     Nome = models.CharField(max_length=20)
>     Posizione = models.IntegerField()
>     NomeRegione = models.ForeignKey('REGIONE', db_column="NomeRegione",
> related_name="Province")
>     Dista= models.ManyToManyField("CITTA", through='DISTA',
> related_name="Province")
>     def __unicode__(self):
>         return  self.Nome
>
> class REGIONE(models.Model):
>     class Meta:
>         db_table = "REGIONE"
>         verbose_name_plural = "Regioni"
>     Nome = models.CharField(max_length=21, primary_key=True)
>     Mq = models.IntegerField()
>     def __unicode__(self):
>         return  self.Nome
>
> class DISTA(models.Model):
>     class Meta:
>         db_table = "DISTA"
>         verbose_name_plural = "Distanze"
>         unique_together =('SiglaProv','CodCitta')
>     SiglaProv = models.ForeignKey("PROVINCIA", db_column="SiglaProv")
>     CodCitta = models.ForeignKey("CITTA", db_column="CodCitta")
>     Ore = models.IntegerField()
>

Con questa configurazione ottengo l' errore:

> Caught an exception while rendering: 'NoneType' object has no attribute 'label'
>
> Mentre togliendo 'Dista' dai fields in ProvinciaOpt non viene visualizzato
il field
'Dista' e men che meno viene apllicato il filter_vertical

Dove sbaglio? Grazie in anticipo.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20090914/be0b49fc/attachment.htm 


Maggiori informazioni sulla lista Python