[Python] Django ForeignKey escludere elemeni con limit_choices_to

Daniele Varrazzo piro a develer.com
Mar 5 Nov 2013 13:08:24 CET


On 2013-11-05 11:25, Zanon Samuele wrote:
> Ciao a tutti. Volevo sapere se e come posso escludere un insieme di
> elementi nella maschera dell'amministrazione in un campo 
> OneToOneField.
> Ovvero, questo è la mia classe:
>
> class Info(models.Model):
>     volontario = models.OneToOneField('Volontari')
>     data_stampa_tesserino = models.DateField(blank=True, null=True)
>     n_attestato = models.CharField(max_length=20, blank=True, 
> null=True)
>     tessera_socio = models.CharField(max_length=20, blank=True, 
> null=True)
>     data_tessera_socio = models.DateField(blank=True, null=True)
>     data_esame = models.DateField(blank=True, null=True)
>     provenienza = models.CharField(max_length=255, blank=True, 
> null=True)
>
>     def __unicode__(self):
>         return '%s' % (self.volontario)
>
>     class Meta:
>         verbose_name = u'Info'
>         verbose_name_plural = u'Info'
>         ordering = ['volontario']
>
> In pratica io vorrei che nel campo "volontario" apparissero solamente 
> quei
> volontari che NON sono ancora stati inseriti nella tabella, estraendo 
> la
> lista dal model chiamato "Volontari".
>
> Sostanzialmente dovrebbe essere eseguita una query del tipo:
> Volontario.objects.exclude(pk__in=Info.objects.all())

Prova a dare un'occhiata ai Manager personalizzati 
('Volontario.objects' è il manager di default)

https://docs.djangoproject.com/en/dev/topics/db/managers/#django.db.models.Manager

in particolare a use_for_related_fields.


-- Daniele



Maggiori informazioni sulla lista Python