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

时间:2013-10-24 11:48:32

标签: python django python-2.7 google-cloud-datastore

我从桌子上取记录。

这是我的班级:

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) 哪里出错了,请帮忙吗?

1 个答案:

答案 0 :(得分:3)

使用查询中的.order method让Google数据存储区为您排序记录:

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)