#8904: geodjango should return more informative error for lack of MySQL distance
queries
---------------------------------+------------------------------------------
Reporter: robstar | Owner: jbronn
Status: new | Milestone:
Component: GIS | Version: 1.0
Resolution: | Keywords:
Stage: Unreviewed | Has_patch: 0
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
---------------------------------+------------------------------------------
Changes (by jbronn):
* needs_better_patch: => 0
* needs_tests: => 0
* summary: geodjango should return more informative error for mysql non-
support => geodjango should return more
informative error for lack of MySQL distance
queries
* version: 1.0-beta-1 => 1.0
* owner: nobody => jbronn
* needs_docs: => 0
Old description:
> A better error should be reported for when a distance lookup is attempted
> with mysql:
>
> >>> qs = Building.gobjects.filter(geo_loc__distance_lte=(x, D(km=7)))
> Traceback (most recent call last):
> File "<console>", line 1, in <module>
> File "/root/django-svn/Django-1.0-beta_2/django/db/models/manager.py",
> line 90, in filter
> return self.get_query_set().filter(*args, **kwargs)
> File "/root/django-svn/Django-1.0-beta_2/django/db/models/query.py",
> line 481, in filter
> return self._filter_or_exclude(False, *args, **kwargs)
> File "/root/django-svn/Django-1.0-beta_2/django/db/models/query.py",
> line 499, in _filter_or_exclude
> clone.query.add_q(Q(*args, **kwargs))
> File "/root/django-
> svn/Django-1.0-beta_2/django/db/models/sql/query.py", line 1189, in add_q
> can_reuse=used_aliases)
> File "/root/django-
> svn/Django-1.0-beta_2/django/db/models/sql/query.py", line 1061, in
> add_filter
> parts, opts, alias, True, allow_many, can_reuse=can_reuse)
> File "/root/django-
> svn/Django-1.0-beta_2/django/db/models/sql/query.py", line 1377, in
> setup_joins
> raise FieldError("Join on field %r not permitted." % name)
> FieldError: Join on field 'geo_loc' not permitted.
New description:
A better error should be reported for when a distance lookup is attempted
with mysql:
{{{
>>> qs = Building.gobjects.filter(geo_loc__distance_lte=(x, D(km=7)))
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/root/django-svn/Django-1.0-beta_2/django/db/models/manager.py",
line 90, in filter
return self.get_query_set().filter(*args, **kwargs)
File "/root/django-svn/Django-1.0-beta_2/django/db/models/query.py",
line 481, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/root/django-svn/Django-1.0-beta_2/django/db/models/query.py",
line 499, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/root/django-svn/Django-1.0-beta_2/django/db/models/sql/query.py",
line 1189, in add_q
can_reuse=used_aliases)
File "/root/django-svn/Django-1.0-beta_2/django/db/models/sql/query.py",
line 1061, in add_filter
parts, opts, alias, True, allow_many, can_reuse=can_reuse)
File "/root/django-svn/Django-1.0-beta_2/django/db/models/sql/query.py",
line 1377, in setup_joins
raise FieldError("Join on field %r not permitted." % name)
FieldError: Join on field 'geo_loc' not permitted.
}}}
Comment:
Yes, a better error needs to be raised.
--
Ticket URL: <http://code.djangoproject.com/ticket/8904#comment:1>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---