Django ORM исключить не удается

Обновить

April 2019

Просмотры

71 раз

1

У меня есть некоторые проблемы с моим запросом - с фильтром () это нормально, но с исключением () не работает. Мои модели:

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 то же самое. Что с исключить?

EDIT Словарь БД Tabel - 120k строк FrequencyData - 160k строк

EDIT2 PSQL (9.6.6)

0 ответы