Добрый день.
Есть такая моделька:
class Picture(models.Model):
ID = models.AutoField(primary_key=True)
...
tags = models.BinaryField(max_length=1000)
class Meta:
ordering = ["ID"]
В tags я храню set:
s = set([i for i in request.POST['tags'].split(' ')])
instance.tags = cPickle.dumps(s, protocol=cPickle.HIGHEST_PROTOCOL)
instance.save()
Проверка, есть ли элемент в set'е, вроде бы O(log n), поэтому я и заморачиваюсь с pickle.
Вопрос: нормально ли это? Есть ли лучший способ?
Вопрос 2: как организовать теперь поиск я представляю. Но как организовать выдачу результатов? Какой-нибудь
s = set([i for i in request.POST['search_query'].split(' ')])
picture_list = [for i in Picture.objects.all() if cPickle.loads(i.tags).issuperset(s)]
context_dict = {'pictures' : picture_list}
?