#django #django-models #random
#django #django-модели #Случайный
Вопрос:
у меня есть фрагмент кода для получения случайных данных из базы данных:
def get_random_item(model,queryset,id_column_name):
max_id = getattr(model.objects.order_by('-%s'%id_column_name)[0],id_column_name)
min_id = math.ceil((max_id-100000)*random.random()) 100000
return queryset.filter(**content_id**__gte=min_id)[0]
как вы можете видеть, я хочу абстрагировать функцию для любой модели, но я не знаю, как заменить «content_id», потому что это не строка или просто атрибут, а __gte.
спасибо за ваши ответы ~
Комментарии:
1. Вы же понимаете, что ваш код не может должным образом обрабатывать пробелы в PK, верно?
Ответ №1:
Для удобства Django предоставляет
pk
ярлык поиска, который расшифровывается как «первичный ключ».
Ответ №2:
Вы можете попробовать queryset.filter(**{«%s__gte» % (имя_столбца,): min_id)
Вы можете прочитать больше об этом здесь