Thanks for the suggestion. Unless I'm mistaken, though, using a
dictionary does not solve the problem which is that .filter() seems to
require field names to be hard-coded. Django is incredibly well
designed, though, and continually surprises me, so I'm almost
_expecting_ to be pleasantly surprised here. :)


On Feb 5, 12:23 am, Itay Donenhirsch <i...@bazoo.org> wrote:
> i guess you can do it with a dictionary, i'll give you a general example:
>
> def foo(x,y,z):
>   print "x=" + x
>   print "y=" + y
>   print "z=" + z
>
> d = { 'x' : 1, 'y': 2, 'z' : 3 }
> foo( **d ) # same as foo( x=1, y=2, z=3 )
>
> it's a python thing, not django necessarily
>
> On Thu, Feb 4, 2010 at 1:20 PM, davidchambers
>
> <david.chambers...@gmail.com> wrote:
> > I'm familiar with hard-coding filters in the standard fashion, e.g.
> > posts = Post.objects.filter(title__contains='django').
>
> > I'm interested in finding out whether it's possible to replace
> > title__contains in the above example with a variable. Why do I want to
> > do this? Well, here's some pseudocode:
>
> > posts = Post.objects.all()
> > if title checkbox is checked:
> >        posts = posts.filter(title__contains='django')
> > if subheading checkbox is checked:
> >        posts = posts.filter(subheading__contains='django')
> > if body checkbox is checked:
> >        posts = posts.filter(body__contains='django')
>
> > I would love to be able to do this with a loop:
>
> > posts = Post.objects.all()
> > for field in ['title', 'subheading', 'body']:
> >        posts = posts.filter(field__contains='django')
>
> > Clearly the above will not work, but is there a way to achieve the
> > result I'm after?
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Django users" group.
> > To post to this group, send email to django-us...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://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 django-us...@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