mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #9997 -- Fixed use of ValuesQuerySets as rvalues in filters.
Previous behaviour was pretty stupid. Let's never speak of it again. New behaviour both works and is documented. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9759 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -1022,6 +1022,22 @@ nothing).
|
||||
>>> print Annotation.objects.filter(notes__in=Note.objects.filter(note="xyzzy")).query
|
||||
SELECT ...
|
||||
|
||||
Bug #9997 -- If a ValuesList or Values queryset is passed as an inner query, we
|
||||
make sure it's only requesting a single value and use that as the thing to
|
||||
select.
|
||||
>>> Tag.objects.filter(name__in=Tag.objects.filter(parent=t1).values('name'))
|
||||
[<Tag: t2>, <Tag: t3>]
|
||||
|
||||
# Multi-valued values() and values_list() querysets should raise errors.
|
||||
>>> Tag.objects.filter(name__in=Tag.objects.filter(parent=t1).values('name', 'id'))
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
TypeError: Cannot use a multi-field ValuesQuerySet as a filter value.
|
||||
>>> Tag.objects.filter(name__in=Tag.objects.filter(parent=t1).values_list('name', 'id'))
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
TypeError: Cannot use a multi-field ValuesListQuerySet as a filter value.
|
||||
|
||||
Bug #9985 -- qs.values_list(...).values(...) combinations should work.
|
||||
>>> Note.objects.values_list("note", flat=True).values("id").order_by("id")
|
||||
[{'id': 1}, {'id': 2}, {'id': 3}]
|
||||
|
||||
Reference in New Issue
Block a user