如何在Python中对记录进行排序?

如何在Python中对记录进行排序?

问题描述:

我正在从表中提取记录。如何在Python中对记录进行排序?

这是我的类:

class user_guide(db.Model): 
    ugq_no = db.IntegerProperty() 
    ug_quest = db.TextProperty()  
    ug_answer = db.TextProperty()  
    ug_parent_type = db.TextProperty() 
    last_modified_on = db.DateTimeProperty(auto_now=True) 
    class Meta: 
     db_table = 'user_guide' 
     verbose_name = 'User Guides' 
     verbose_name_plural = 'User Guide' 
    def __unicode__(self): 
     return str(self.ugq_no) 

以下是功能。

def get_all_record(request):   
    qry_obj = db.Query(user_guide) 
    all_list = [] 
    #Here I am fetching all records from qry_obj. In this I am getting data in random order. 
    for q in qry_obj: 
     all_list.append(q)   
     #all_list.sort() 
     sorted(all_list)  

    return HttpResponse(serializers.serialize('json', all_list), mimetype='application/json') 

在这里,我从qry_obj获取所有记录并在all_list中添加这些记录。

但我想按照ugq_no的升序对数据进行排序。 我试过sort()和sorted()但没用。 (Django Framwork,python) 我哪里出错了,请帮忙?

+0

你看过django文档吗? https://docs.djangoproject.com/en/dev/topics/db/aggregation/#order-by –

+0

这是*不*一个django模型,看起来像谷歌AppEngine或类似的东西... –

使用的查询.order method有谷歌的数据存储排序您记录您:

qry_obj = db.Query(user_guide).order('ugq_no') 

注意,user_guide对象本身,您可以访问该查询过:

qry_obj = user_guide.all().order('ugq_no') 

您可以简单地通过调用list就可以将查询变成列表:

all_list = list(qry_obj) 
+0

order_by给错误我尝试过:qry_obj = db.Query(user_guide).order('ugq_no') – eegloo

+2

@eegloo:你确定你在这里使用Django模型吗?仔细观察,看起来您正在使用Google App Engine。 –

+0

是Google应用引擎 – eegloo