On Tuesday, 27 March 2012 02:15:04 UTC+1, bcrem wrote:
>
> Hello Django Nerds! 
>
> So I have a (somewhat) complicated lookup I'm trying to do; here's the 
> gist of it: 
>
>   1.  I have a Store class, with a User ManyToManyField, Store.users 
>   2.  I have a user profile class associated with each user, 
> UserProfile, accessible through the usual User.get_profile() 
>   3.  UserProfile has a status variable, UserProfile.status, which can 
> be 'Active', 'Inactive', or 'Deleted' 
>
> I'm trying to display a list of users for a particular store; 
> currently I generate this list using the following line: 
>
>    userList = request.session['currentStore'].users.all() 
>
> Works great; however, now I'd like to filter out all users with a 
> status of 'Deleted'.  Now, if status were a User attribute, I could 
> just try this: 
>
>    userList = 
> request.session['currentStore'].users.exclude(status=='Deleted') 
>
> or something similar. 
>
> THE PROBLEM:  How do I generate this no-deleted-users list for the 
> given store, using the ManyToManyField Store.users, but based on the 
> store.users UserProfile.status?  I know there's some kinky django 
> black magic reverse-lookup way to do it in a single magnificent 
> line...just haven't a clue what it might be.  Ideas? 
>
> First person with the right answer: thank you - please treat yourself 
> to a donut...


The session seems to be a red herring here. You're just doing a filter 
across a related field, which is done with the normal double-underscore 
syntax:

    current_store.users.exclude(userprofile__status='Deleted')
--
DR.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/sVcHJjNplGoJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to