Thanks Scott, I have one doubt though: I need a bound form to properly set the queryset. Using your method I'd use an unbound form, am I wrong?
On Fri, Jun 4, 2010 at 14:33, Scott Gould <[email protected]> wrote: > Create a ModelForm for your model (A), set the queryset to what you > want on the appropriate field (n), and then register that ModelForm > for admin use in your admins.py. > > Regards > Scott > > > On Jun 4, 6:14 am, Massimiliano della Rovere > <[email protected]> wrote: >> When displayed in the Admin interfaces, I'd like to filter the values >> of n, so that instances of N already linked to other instances of A >> sharing the same instance of o are not shown: >> so when you edit an instance of A (let's call it "a"), you see only >> the instances of n in use by a and the unsed ones (in the context of >> o). >> >> The problem is that I am not allowd to write self.choices_for_n() >> >> Does anybody know any solution for this? >> >> class A(models.Model): >> o = models.ForeignKey(O) >> p = models.ManyToManyField(P) >> n = models.ManyToManyField(N, limit_choices_to=self.choices_for_n()) >> >> def choices_for_n(self): >> unwanted = [] >> for z in self.o.z_set.all(): >> if z.id == self.id: >> continue >> unwanted += [z.id for z in z.n] >> for n in N.objects.exclude(id__in=unwanted): >> yield n.id > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

