1

I'm really new to django programming, and I'm facing a problem I don't really know how to solve:

I want to get a list of users who have many string attributes, but only the users whom none of it's attributes is equal to a given one.

I have this piece of code

all_users = list(UserProfile.objects.attribute.filter(type=given).exists())

but this code will return me the users who have that attribute, so here's the question: How I can modify this line (or what lines do I need to add) in order to get the list of users without this attribute

Ps: Maybe I didn't explained myself clearly as I don't really know how to specify my problem in english, but, if you don't know what I'm asking I can try again

Thanks all

4

1 回答 1

6

You can use exclude:

all_users = list(UserProfile.objects.attribute.exclude(type=given).exists())

To quote the docs:

To create such a subset, you refine the initial QuerySet, adding filter conditions. The two most common ways to refine a QuerySet are:

filter(**kwargs)
Returns a new QuerySet containing objects that match the given lookup parameters.

exclude(**kwargs)
Returns a new QuerySet containing objects that do not match the given lookup parameters.

于 2013-01-08T16:50:01.287 回答