On 11/22/05, Simon Willison <[EMAIL PROTECTED]> wrote:
> Rails has a neat solution to this problem: http://api.rubyonrails.com/
> classes/ActiveRecord/Base.html#M000728
>
> Article.with_scope(:find => { :conditions => "blog_id = 1" }) do
>      Article.find(1) # => SELECT * from articles WHERE blog_id = 1
> AND id = 1
> end
>
> In the above block, all find operations automatically have a "WHERE
> blog_id = 1" clause added to them.
>
> I'm not sure if this would be easy or even wise to duplicate in
> Django, but it's an interesting solution.

Django has where_constraints, which is undocumented and is a way of
adding arbitrary clauses to every lookup.

class Foo(meta.Model):
    bar = meta.CharField(maxlength=3)
    is_published = meta.BooleanField()
    class META:
        where_constraints = {'is_published__exact': True}

foos.get_list() returns all Foo objects with is_published set to True.

Adrian

--
Adrian Holovaty
holovaty.com | djangoproject.com | chicagocrime.org

Reply via email to