2

这是我的models.py

class Picture(models.Model):
    image = models.ImageField(upload_to='uploads/')
    caption = models.CharField(max_length=140, null=True, blank=True)
    uploaded = models.DateField()
    comments = models.ManyToManyField(Comment, null=True, blank=True)

还有我的tastepie的API资源,api.py:

class PictureResource(ModelResource):

    class Meta:
        queryset = Picture.objects.all.order_by('-uploaded')
        resource_name = "photo"
        authorization = Authorization()
        API_LIMIT_PER_PAGE = 24

如您所见,我希望我的 API 页面按上传的最新图像排序。

我的错误代码是:

函数对象没有属性“order_by”

通常我不知道该怎么办...

(顺便问一下,API_LIMIT_PER_PAGE = 24这是在正确的地方吗?)

4

1 回答 1

5

将您更改queryset为:

class PictureResource(ModelResource):

    class Meta:
        queryset = Picture.objects.all().order_by('-uploaded')
        resource_name = "photo"
        authorization = Authorization()
        API_LIMIT_PER_PAGE = 24

all它本身只是一种方法,但如果你像使用它一样使用它,all()它会返回一个 QuerySet。order_by是一个 QuerySet 方法。

>> type(Picture.objects.all)
<type 'instancemethod'>

>> type(Picture.objects.all())
<class 'django.db.models.query.QuerySet'>
于 2012-04-19T22:51:07.173 回答