mirror of
https://github.com/django/django.git
synced 2025-09-24 19:23:03 +00:00
Fixed #14707 -- Relax the protections on aggregate naming collisions when a ValuesQuerySet removes the colliding name. Thanks to Andy McKay for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15223 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b4f0921463
commit
ae8ff5f476
2 changed files with 27 additions and 4 deletions
|
@ -620,18 +620,19 @@ class QuerySet(object):
|
|||
"""
|
||||
for arg in args:
|
||||
if arg.default_alias in kwargs:
|
||||
raise ValueError("The %s named annotation conflicts with the "
|
||||
raise ValueError("The named annotation '%s' conflicts with the "
|
||||
"default name for another annotation."
|
||||
% arg.default_alias)
|
||||
kwargs[arg.default_alias] = arg
|
||||
|
||||
names = set(self.model._meta.get_all_field_names())
|
||||
names = getattr(self, '_fields', None)
|
||||
if names is None:
|
||||
names = set(self.model._meta.get_all_field_names())
|
||||
for aggregate in kwargs:
|
||||
if aggregate in names:
|
||||
raise ValueError("The %s annotation conflicts with a field on "
|
||||
raise ValueError("The annotation '%s' conflicts with a field on "
|
||||
"the model." % aggregate)
|
||||
|
||||
|
||||
obj = self._clone()
|
||||
|
||||
obj._setup_aggregate_query(kwargs.keys())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue