这是我的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)
我的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
如您所见,我希望我的API页面按照上传的最新图片顺序排列。
我的错误代码是:
函数对象没有属性'order_by'
通常我不知道该怎么做......
(顺便说一下,API_LIMIT_PER_PAGE = 24
是否在正确的位置?)
答案 0 :(得分: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'>