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)

そして、私の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これでいいのかな?)

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_byQuerySet メソッドです。

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

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