Сейчас в пост придут владельцы фаблетов (кстати, привет) и расскажут про смешные < 6" дисплеи и аккумуляторы < 3000 мАч.
Кстати, говоря о самсунге, у него до сих пор при обновлении андроида нужно покупать новый телефон? :)
children = parent.children.filter(is_active=True).order_by('order_field').values_list('id', flat=True)
pages = {x.id for x in Page.objects.extra(translations(where={'id': children}))}
ordered_pages = (pages[pk] for pk in children)
В def translations уже включить обработку where на свой вкус.
Это действительно так.
Но опять же, возвращаясь к модели: что там фильтровать?
И если это даже понадобится, лучше сделать дополнительный запрос с exists(). Т.е. я предлагаю использовать raw только чтобы стянуть переводы.
Дополню мысль: проще делать два запроса. Один для получения многоязычных полей и второй через орм (если понадобится), для получения всех остальных. Можно даже менеджер отдельный прикрутить.
В общем-то, хорошее решение. Я про модель многоязычности :)
А сырой sql, на мой взгляд все равно лучше, хоть и менее DRY. Хранить его рядом с моделью и просить обновлять вместе с ней.
Ну не будете же вы каждую неделю переделывать таблицы? А if else в шесть слоев и map(lambda x) это уже что-то за гранью. ИМХО, конечно.
Жаль, что не назвали Джейн, по мотивам вселенной Эндера, было бы очень символично. Оказывается, даже актрису так зовут :/
Может со временем появится возможность давать персональные имена помощникам.
Первым делом выключил. Все равно глючит.
Хорошо заметно в браузере, особенно хорошо, если сайт использует размеры окна, чтобы на js подстроить контент, типа images.google.com.
Сенсор то схватывает свайп, то пинч, то может тупо проскролить страницу рандомно на любую позицию. Если программа не требует подтверждений, можно довольно просто нарваться на неприятность, например, нереально проскролить галерею стикеров в мессенджере Line — приложение схватывает тап и стикер улетает сообщением без предупреждения.
С линуксом все окей. Просто я не пользуюсь шнуром — по воздуху все шикарно работает, в том числе с moliplayer pro.
С контактами, говорят, придется резетить. 8.1. уже выкатили для 925 в Финляндии и еще где-то, можно резетнуть с апдейтом.
Собственно, за неделю со всем разобрался, остается только баг сенсора, очень надеюсь в Cyan пофиксят. Я уже немного приноровился, но стоит передать аппарат кому-нибудь и пиши пропало, люмия 1520 требует точных, вдумчивых тапов и свайпов.
Я почему-то сразу о ботах подумал. О всяких регистрациях на сайтах. Многие, кто борется со спамом на сайте, разрешают регистрацию с основных хостеров почты, в том числе и гугла.
С яндекс диском есть одна беда — корзина. Если вы ротируете бекапы, а вы их ротируете, то спешите найти удаленные файлы в корзине в веб-интерфейсе. И все бы хорошо, но корзина делит общее место диска с прочими файлами.
Я так и не нашел способа ее отключить. Кто-нибудь догадался как с ней бороться?
Взяв небольшую группу запросов можно получить весьма точные результаты. Взяв еще одну и подкорректировав алгоритмы, можно получить весьма неплохие результаты. Взяв еще десять групп, легко получить кашу.
Поэтому вы правы в том, что исходите из своей задачи. Я вот уже второй день бьюсь над сфинксом, здесь потяну, тут хорошо, там потяну, здесь все плохо, но эластика совсем бы не справилась.
«query язык» — это, я так понимаю, Extended query syntax, всякие OR, MAYBE, NOT?
Давайте разберем по порядку:
"Ruby | RoR | \"Ruby on Rails\" | \"программирование Ruby\"~4 | \"вставать на рельсы\" -php -java -net",
В доке сфинкса будет так:
'Ruby RoR Ruby on Rails программирование Ruby вставать на рельсы',
Никаких условий, как видите, тут нет, но это не беда.
Дальше ищем изделие «Изучить Ruby on Rails максимально быстро»
query = u'Изучить Ruby on Rails максимально быстро'
s.SetMatchMode(sp.SPH_MATCH_EXTENDED2)
s.SetRankingMode(sp.SPH_RANK_SPH04)
s.SetFilterRange('@weight', 0, 40, True) # Об этом чуть ниже
results = s.Query(query, index='keywords')
Теперь вопрос: если в query нет никаких php, java, net найдется ли дока?
Допустим, в какой-нибудь залетной доке вы получите свой net. Для этого есть s.SetFilterRange('@weight', 0, 40, True) — это фильтр веса, можно обрезать всякие мало-мальские совпадения. Т.е. все зависит от того, как вы это настроите. В эластике он тоже есть, но мой опыт говорит, что он не работает как ожидается.
Ну и еще, вы сами сказали, да и я согласен: у вас так или иначе будут ложные срабатывания.
У эластика есть percolator, у сфинкса лучше поиск по русскому. Эластика — хорошо работает с токенами, т.е. с тем, что не надо склонять, но можно рассматривать как порядок символов, поэтому будут шикарные результаты с английским текстом и никакой с русским. В одном проекте я так намучился с настройкой этих поисковиков, что в итоге оставил оба. Эластик работал с агрегационными запросами (фасетки), а сфинкс как «поисковик».
В вашем случае, мне кажется, конечный счет будет равный.
Если я правильно понял задачу, в сфинксе можно создать индекс с этими вот перко-штуками и загонять в поиск название «изделия» по этому индексу. Я так делаю поиск «подобных»: товаров, статей, только в моем случае отдельный индекс не требуется.
Кстати, говоря о самсунге, у него до сих пор при обновлении андроида нужно покупать новый телефон? :)
В
def translations
уже включить обработкуwhere
на свой вкус.Но опять же, возвращаясь к модели: что там фильтровать?
И если это даже понадобится, лучше сделать дополнительный запрос с exists(). Т.е. я предлагаю использовать raw только чтобы стянуть переводы.
А сырой sql, на мой взгляд все равно лучше, хоть и менее DRY. Хранить его рядом с моделью и просить обновлять вместе с ней.
Ну не будете же вы каждую неделю переделывать таблицы? А if else в шесть слоев и map(lambda x) это уже что-то за гранью. ИМХО, конечно.
Прямо сейчас в проекте:
Теперь только с гит и, если я правильно понял, нужен пхп чтобы собрать питоновскую либо, так? :)
Может со временем появится возможность давать персональные имена помощникам.
Хорошо заметно в браузере, особенно хорошо, если сайт использует размеры окна, чтобы на js подстроить контент, типа images.google.com.
Сенсор то схватывает свайп, то пинч, то может тупо проскролить страницу рандомно на любую позицию. Если программа не требует подтверждений, можно довольно просто нарваться на неприятность, например, нереально проскролить галерею стикеров в мессенджере Line — приложение схватывает тап и стикер улетает сообщением без предупреждения.
С контактами, говорят, придется резетить. 8.1. уже выкатили для 925 в Финляндии и еще где-то, можно резетнуть с апдейтом.
Собственно, за неделю со всем разобрался, остается только баг сенсора, очень надеюсь в Cyan пофиксят. Я уже немного приноровился, но стоит передать аппарат кому-нибудь и пиши пропало, люмия 1520 требует точных, вдумчивых тапов и свайпов.
Уж очень элегантен ход.
Я так и не нашел способа ее отключить. Кто-нибудь догадался как с ней бороться?
Поэтому вы правы в том, что исходите из своей задачи. Я вот уже второй день бьюсь над сфинксом, здесь потяну, тут хорошо, там потяну, здесь все плохо, но эластика совсем бы не справилась.
Давайте разберем по порядку:
В доке сфинкса будет так:
Никаких условий, как видите, тут нет, но это не беда.
Дальше ищем изделие «Изучить Ruby on Rails максимально быстро»
Теперь вопрос: если в query нет никаких php, java, net найдется ли дока?
Допустим, в какой-нибудь залетной доке вы получите свой net. Для этого есть
s.SetFilterRange('@weight', 0, 40, True)
— это фильтр веса, можно обрезать всякие мало-мальские совпадения. Т.е. все зависит от того, как вы это настроите. В эластике он тоже есть, но мой опыт говорит, что он не работает как ожидается.Ну и еще, вы сами сказали, да и я согласен: у вас так или иначе будут ложные срабатывания.
У эластика есть percolator, у сфинкса лучше поиск по русскому. Эластика — хорошо работает с токенами, т.е. с тем, что не надо склонять, но можно рассматривать как порядок символов, поэтому будут шикарные результаты с английским текстом и никакой с русским. В одном проекте я так намучился с настройкой этих поисковиков, что в итоге оставил оба. Эластик работал с агрегационными запросами (фасетки), а сфинкс как «поисковик».
В вашем случае, мне кажется, конечный счет будет равный.
Выше Akuji_bwn о ней говорил.