Without looking into your problem in any real detail (sorry, late
here), you could probably apply DeMorgan's Law and come up with a
single predicate that you use throughout your query, using negation as
appropriate.  That may help you out.

-- 
Kevin

On 9/5/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> I'm having trouble piecing together a query for this model:
>
> class Ticket(models.Model):
>     ...
>     assigned_user = models.ForeignKey(User)
>     name = models.CharField(maxlength=255)
>     private = models.BooleanField(default=False)
>
> I'm trying to get all the tickets where the tickets are not private OR
> the ticket is private and assigned to the current user.
>
> I'm foggy on where I use the comma, pipe, and ampersand characters to
> get the query structured properly. In pseudo-sql, I'd say "select *
> where private = False or (private=True and username='snewman')
>
> I thought I was close with this, but it only returned tickets assigned
> to me. (The parenthesis around the 2nd and 3rd Q's obviously didn't
> help)
>
> Ticket.objects.filter(Q(private__exact=False) |
> (Q(private__exact=True) & Q(assigned_user__username__exact='snewman')))
>
>
> >
>


-- 
Kevin

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to