Size: a a a

Django [ru] #STAY HOME

2021 February 22

Y

Yaroslav in Django [ru] #STAY HOME
Anton ツ Centrino
можно костыли, может он будет красивее чем мой костыль)
Делаю запрос, узнаю последний id и затем генерирую случайное число
Так будут пробелы.

Если пользователя 3

id 1, id 2, id 3, но пользователь с id 2 был удален

id 1, id 3

В этом случае при гинерации случайного числа может выпасть 2, а пользователя с таким id нет
источник

Aツ

Anton ツ Centrino in Django [ru] #STAY HOME
Nikolay Cherniy
User.objects.order_by('?').first()
Спасибо
источник

M

Max in Django [ru] #STAY HOME
Yaroslav
Так будут пробелы.

Если пользователя 3

id 1, id 2, id 3, но пользователь с id 2 был удален

id 1, id 3

В этом случае при гинерации случайного числа может выпасть 2, а пользователя с таким id нет
Ты хочешь сказать что User.objects.all() может достать удаленного юзера?
источник

Y

Yaroslav in Django [ru] #STAY HOME
Max
Ты хочешь сказать что User.objects.all() может достать удаленного юзера?
Наоборот
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Max
Ты хочешь сказать что User.objects.all() может достать удаленного юзера?
наоборот, он хочет сказать что выбор из вариантов ид меньше последнего не дает гарантию что юзер все еще существует
источник

M

Max in Django [ru] #STAY HOME
Yaroslav
Наоборот
а понял, я предлагал в цикле собрать все айди в список
источник

Y

Yaroslav in Django [ru] #STAY HOME
Max
Ты хочешь сказать что User.objects.all() может достать удаленного юзера?
Если выпадет id по которому юзера нет, будет Ошибка 404
источник

NC

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

M

Max in Django [ru] #STAY HOME
Nikolay Cherniy
зачем это делать в цикле?
а как еще?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Max
а как еще?
User.objects.values_list('id', flat=True)
источник

M

Mark in Django [ru] #STAY HOME
Yaroslav
Если выпадет id по которому юзера нет, будет Ошибка 404
Если написать обработчик проверки юзера с выпавшим случайным id, то в целом можно избежать
источник

M

Max in Django [ru] #STAY HOME
Nikolay Cherniy
User.objects.values_list('id', flat=True)
источник

Y

Yaroslav in Django [ru] #STAY HOME
Mark
Если написать обработчик проверки юзера с выпавшим случайным id, то в целом можно избежать
Слишком много телодвижений.
источник

M

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

Y

Yaroslav in Django [ru] #STAY HOME
Но конечно можно перехватывать исключения
источник

NC

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

NC

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

M

Mark in Django [ru] #STAY HOME
Nikolay Cherniy
что именно медленно? отсортировать?
Ну представьте что у вас тысяча запросов в базу что-то сортируют
источник

M

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

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Mark
Ну представьте что у вас тысяча запросов в базу что-то сортируют
то есть на боевом проекте данные не сортированные приходят? 0_о
источник