django tsstypie.order_by queryset

Gho*_*gio 2 sorting api django sql-order-by tastypie

这是我的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)
Run Code Online (Sandbox Code Playgroud)

和我的tastypie的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
Run Code Online (Sandbox Code Playgroud)

如您所见,我希望我的API页面按照上传的最新图片顺序排列.

我的错误代码是:

函数对象没有属性'order_by'

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

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

Cés*_*sar 5

将您更改queryset为:

class PictureResource(ModelResource):

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

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

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

>> type(Picture.objects.all())
<class 'django.db.models.query.QuerySet'>
Run Code Online (Sandbox Code Playgroud)