Добрый день.
У меня есть модель:
class Location(models.Model):
class Meta():
db_table = 'location'
owner = models.OneToOneField(User)
point = models.PointField()
date_of_latest_update = models.DateTimeField(auto_now=True)
objects = models.GeoManager()
В одной из вьюх я делаю такие кверисеты (перед этим просто много фильтраций):
users_by_distance_q = users_by_distance_q.filter(owner__interests__in=q).distinct('id')
users_by_distance_q = users_by_distance_q.distance(centre).order_by('distance')[offset:limit]
И возникает ошибка:
Exception Type: ProgrammingError
Exception Value:
SELECT DISTINCT ON expressions must match initial ORDER BY expressions
LINE 1: SELECT DISTINCT ON ("location"."id") "location"."id", "locat...
^
Exception Location: /home/ubuntu/my_server_env/lib/python3.4/site-packages/django/db/backends/utils.py in execute, line 64
Однако когда я делаю такой же запрос но без .distinct('id')
то все хорошо. Но этот дистинкт он нужен, чтоб отсеить дублирующиеся объекты в запросе после __in
.
Подскажите плиз как быть?
Updated 12 Oct. 2015, 22:58 by Closius.