Я использую Django-taggit и отлично работает для меня, но у исключения есть проблема.Ключевое слово - это строка типа «key1 key2 key3».Код:
keyword = form.cleaned_data['keyword']
qlist = lambda x: [Q(name__icontains=x), Q(author__name__icontains=x),Q(tags__name__icontains=x)]
item_list = Item.objects.distinct()
for key in keyword.split():
if ('-'==key[0]):
print 'exclude: %s'%(key[1:])
item_list = item_list.exclude(reduce(operator.or_,qlist(key[1:])))
else:
print 'include: %s'%(key)
item_list = item_list.filter(reduce(operator.or_,qlist(key)))
Отлично работает для filter () и для exclude () Q (name_ icontains = x), Q(автор 1010 * _NAME_ * icontains = х).Но когда я пытаюсь использовать exclude () с Q (теги _name__icontains = x), это не работает.
С уважением, Кристиан