Django: использование .distinct () в запросе приводит к неверному запросу БД - PullRequest
2 голосов
/ 12 ноября 2010

Я пытаюсь получить список различных имен store_names в списке представлений.

Моя очень простая модель Django:

class Submission(models.Model):  
    title = models.CharField(max_length=50, null=True, blank=True)  
    description = models.CharField(max_length=200, null= True, blank=True)  
    store_name = models.CharField(max_length=200)  

Если я делаю:
stores = Submission.objects.values_list('store_name', flat=True)
Тогда с напечатанным результатом все в порядке:
[u'amazon.com', u'amazon.com', u'amazon.com', u'buy.com']

Однако - если я добавлю .distinct () к запросу, то получу Этот запросбаза данных не поддерживается.

Есть идеи, почему это происходит?Я поиграл с использованием значений вместо значений без удачи.

(Последний выпуск django, Python 2.6, OS X, Google App Engine)

1 Ответ

3 голосов
/ 12 ноября 2010

API Google Appengine Datastore не поддерживает distinct функциональность. Вот что говорит ошибка, которую вы получаете, поэтому вы не можете сделать это.

Все, что вы можете сделать, - это отфильтровать не уникальные вопросы после получения результатов, подобных этому:

stores = Submission.objects.values_list('store_name', flat=True)
unique_stores = []
for store in stores:
    if store not in unique_stores:
        unique_stores.append(store)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...