Add custom Q-object (add_to_query) support to QuerySet.filter() and QuerySet.exclude()
It would be nice if custom Q-objects could be transparently used in filter()
and exclude()
calls (if they provide an __invert__()
method).
The following code illustrates the desired behaviour:
class QuerySet(models.query.QuerySet):
def filter(self, *args, **kwargs):
if not kwargs and len(args) == 1 and hasattr(args[0], 'add_to_query'):
return self.complex_filter(args[0])
return super(QuerySet, self).filter(*args, **kwargs)
def exclude(self, *args, **kwargs):
if not kwargs and len(args) == 1:
return self.complex_filter(~args[0])
return super(QuerySet, self).exclude(*args, **kwargs)
Has patch: |
unset
|
Version: |
1.1 → SVN
|
Triage Stage: |
Unreviewed → Someday/Maybe
|
Severity: |
→ Normal
|
Type: |
→ New feature
|
Resolution: |
→ wontfix
|
Status: |
new → closed
|
...