Django ORM исключить не удалось - PullRequest
0 голосов
/ 30 мая 2018

У меня есть некоторые проблемы с моим запросом - с filter () все в порядке, но с exclude () не работает.Мои модели:

class Dictionary(DateTimeModel):
    base_word = models.ForeignKey(BaseDictionary, related_name=_('dict_words'))
    word = models.CharField(max_length=64)
    version = models.ForeignKey(Version)

class FrequencyData(DateTimeModel):
    word = models.ForeignKey(Dictionary, related_name=_('frequency_data'))
    count = models.BigIntegerField(null=True, blank=True)
    source = models.ForeignKey(Source, related_name=_('frequency_data'), null=True, blank=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name=_('frequency_data'))
    user_ip_address = models.GenericIPAddressField(null=True, blank=True)
    date_of_checking = models.DateTimeField(null=True, blank=True)
    is_checked = models.BooleanField(default=False)

И я хочу получить несколько слов из словаря, чьи частоты не от какого-то пользователя

Dictionary.objects.prefetch_related('frequency_data').filter(frequency_data__user=1)[:100] - OK

Dictionary.objects.prefetch_related('frequency_data').exclude(frequency_data__user=1)[:100] - processor up to 100% and loading

Без prefetch_related то же самое.Что не так с exclude?

РЕДАКТИРОВАТЬ Словарь db tabel - 120k строк FrequencyData - 160k строк

EDIT2 psql (9.6.6)

...