2011-04-05 82 views
0

我有一段代码,从数据库中获取随机数据:如何为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。

TKS为您解答〜

+0

你一定要明白你的代码可以”不正确地处理PK中的孔,对吗? – 2011-04-05 02:19:33

回答

0

"The pk lookup shortcut"

为方便起见,Django提供了一个pk查找快捷方式,它的全称是 “主键”。

+0

你是对的!我忘了'PK',谢谢〜 – MangMang 2011-04-05 02:49:40

0

您可以尝试queryset.filter(** { “%s__gte” %(列):min_id)

你可以阅读更多关于它here