And there's 2 other options to consider:

     *  The ne lookup is actually the first example in the documentation for 
custom 
lookups[1]. So you get its implementation for free and can consider adding it.
     *  You can extend Field to add exclude_choices() which sets 
limit_choices_to to the 
negation of the argument as below - so wrap it with ~Q().
All depending on how isolated your case is in the project/app.

On Tuesday 31 January 2017 23:48:28 C. Kirby wrote:
> django doesn't have an ne operator in the orm. You want to use a
> negated Q object for your limit_choices_to. try:
> 
> from django.db.models import Q
> 
> phone = models.ManyToManyField(Phone, limit_choices_to = ~Q(type_id =
> 'C'))
> On Wednesday, February 1, 2017 at 6:17:52 AM UTC+2, Gordon Burgess wrote:
> > I have this code, and with Django 1.10 it works as expected:
> > 
> > class Location(models.Model):
> >     name = models.CharField(max_length = 32, unique = True)
> >     street = models.CharField(max_length = 32)
> >     detail = models.CharField(max_length = 32, blank = True, null =
> >     True)
> >     city = models.CharField(max_length = 32)
> >     state = USStateField()
> >     zip = USZipCodeField()
> >     phone = models.ManyToManyField(Phone, limit_choices_to =
> > 
> > {'type_id':'H'})
> > 
> > but what I'd like to do is restrict the choices of phone numbers for
> > Locations to those that aren't 'C' (cell phones) - I've found some
> > hints,> 
> > but they're all for older versions of Django - it seems like:
> >     phone = models.ManyToManyField(Phone, limit_choices_to =
> > 
> > {'type_id__ne':'C'})
> > 
> > ought to work - but this provokes a TypeError:
> > 
> > Related Field got invalid lookup: ne
> > 
> > Thanks!

-- 
Melvyn Sopacua

--------
[1] https://docs.djangoproject.com/en/1.10/howto/custom-lookups/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/2680435.EONmJTctep%40devstation.
For more options, visit https://groups.google.com/d/optout.

Reply via email to