2011-04-05 83 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