Size: a a a

Django [ru] #STAY HOME

2021 February 22

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
После выпадения случайного проверять отдельным запросом конкретно этот айди, если есть, то возврашать, если нет то рандомить дальше
ну вот это 1000 раз конечно будет быстрее)
источник

M

Mark in Django [ru] #STAY HOME
Nikolay Cherniy
то есть на боевом проекте данные не сортированные приходят? 0_о
order_by("?"), который вы предлагаете, перекладывает сортировку на базу данных, у неё тоже ресурс не вечный
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
После выпадения случайного проверять отдельным запросом конкретно этот айди, если есть, то возврашать, если нет то рандомить дальше
просто цикл будет вероятно while True и это вполне себе способ накопать проблем на пустом месте, в прямом смысле, была у тебя одна запись, пока ты считал какой последний id и ее удалили, и вот у тебя уже бесконечный цикл
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
order_by("?"), который вы предлагаете, перекладывает сортировку на базу данных, у неё тоже ресурс не вечный
и? еще раз, у тебя 1000 запросов данных в твоем боевом проекте, ты их несортированными возвращаешь?
источник

M

Mark in Django [ru] #STAY HOME
так запрос делается на один элемент, при чёт тут сортированные они или нет?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
так запрос делается на один элемент, при чёт тут сортированные они или нет?
то есть твой боевой проект везде возвращает по одному элементу? списки нигде не возвращает? или там где списки там один запрос в год, а вот именно здесь 1000 запросов в наносекунду?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Не, если рассуждать так, конечно давайте понапишем велосипедов на то, на что уже есть готовое решение, лишь бы, как нам кажется, лишний раз не нагрузить базу)
источник

M

Mark in Django [ru] #STAY HOME
Так мы вроде говорим про конкретный вопрос как достать случайного пользователя
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
ты уж определись, ты говоришь про конкретный вопрос или про то как этот конкретный вопрос начнет себя вести в сферических боевых условиях)
источник

M

Mark in Django [ru] #STAY HOME
В конце концов обратимся к документации
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
И поэтому лучше написать костыли, которые скорее всего будут еще дороже?
источник

M

Mark in Django [ru] #STAY HOME
Да почему они будут дороже? Сравним сложность O(log(n)) сортировки в базе и O(1) прямых обращений по айдишнику. Я согласен, что условий задачи мало и адекватного решения тут нет с использованием рандомизатора из БД, так что обсуждаемо и то и другое
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
Да почему они будут дороже? Сравним сложность O(log(n)) сортировки в базе и O(1) прямых обращений по айдишнику. Я согласен, что условий задачи мало и адекватного решения тут нет с использованием рандомизатора из БД, так что обсуждаемо и то и другое
Давай считать твои запросы) первый - ты узнаешь максимальный id, второй - запрашиваешь объект по ид, дальше н раз повторяешь этот запрос пока не получишь валидный результат, плюс к этому генеришь случайное число, тратишь время на обработку исключений, где константа твоя?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
А учитывая что ты не видишь проблемы в том чтобы обрабатывать это в бесконечном цикле, скорее всего не учитываешь всех возможных проблем и в какой-то момент вешаешь систему
источник

РШ

Роман Шапран... in Django [ru] #STAY HOME
я обычно это делаю получив всех в qs
Типа:
1) qs=Model.objects.filter(**filter_kwargs)
2) qs[random.randint(0, qs.count())]
Чем плохо такой подход?
источник

РШ

Роман Шапран... in Django [ru] #STAY HOME
Бд оч медленно выполняет random насколько я знаю
источник

ЕВ

Евгений Волченко... in Django [ru] #STAY HOME
Здравствуйте, подскажите пожалуйста,  я использую в моделях Django postgresql IntegerRangeField и при выводе в шаблон остаются знаки  [). Есть ли возможность их убрать?
источник

se

saly epta in Django [ru] #STAY HOME
какие возможны form.errors помимо required?
источник

se

saly epta in Django [ru] #STAY HOME
никак не могу найти все возможные варианты
источник

se

saly epta in Django [ru] #STAY HOME
invalid нашов
источник