2013-09-24 122 views
2

我构建了一个django-tastypie api.It返回数据,当我打到网址。 我想根据日期对数据进行排序。问题是它的一个字符型字段排序为非orm(mongodb)的tastypie

资源代码:

class myResource(Resource): 
    date = fields.CharField(attribute='date', default=None) 
    time = fields.CharField(attribute='time', default=None) 
    myid = fields.FloatField(attribute='newsid', default=None) 

    class Meta: 
    resource_name = 'data' 
    object_class = dict2obj 

    def obj_get_list(self, bundle, **kwargs): 
    bundle = [] 

    #get_data fetches data from mongodb 

    content = self.get_data() 

    #content is a dict  

    for key, value in content.items(): 
     value['myid'] = key 
     bundle.append(dict2obj(value)) 

    #bundle is a list 

    return bundle 

网址命中返回:

[{ 
     date: "2013-09-24 08:56:00.000", 
     myid: 266131, 
     time: "08:56" 
    }, 
    { 
     date: "2013-09-24 09:43:00.000", 
     myid: 266151, 
     resource_uri: "/api/eboss/news/266151/" 

    }] 

回答

0

我不知道你的dict2obj,但如果datetime是真正的日期和时间,那么分别使用tastypie.fields.DateFieldtastypie.fields.TimeField更合适。

要进行排序,您可以覆盖apply_sorting(obj_list, options=None)函数,其中options是包含查询参数(GET方法)的字典。