3

我建模like为数据库表

class UserLikeAlbumImage(models.Model):
    user = models.ForeignKey(User)
    album_image = models.ForeignKey(AlbumImage)
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        unique_together = ('user', 'album_image')

目前我有

api/v1/userlikealbumimage/
api/v1/userlikealbumimage/3 #3是UserLikeAlbumImage的id

我希望有

/like/user/{user-id}/image/{image-id} 来自REST 方式来检查/取消选中喜欢/不喜欢收藏/取消收藏资源

特别是因为,很自然地认为like是(用户,喜欢的对象)的组合。

/like/user/{user-id}/image/{image-id} 
GET: find out if user likes image
POST: `create` user likes image
DELETE: `delete` user likes image

/like/user/{user-id}/  
GET: list all images a user likes

/like/image/{image-id}/
GET: list all users who like this image

所以我假设这个寻址方案可以用 django-tastypie 表达,我该如何开始?(我应该搜索什么?)

- - 编辑 - -

好的,我让它工作了

  def override_urls(self):
        return [
            url(r"^(?P<resource_name>%s)/user/(?P<user__id>\d+)/image/(?P<album_image__id>\d+)/$" % self._meta.resource_name,
                self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
            ]

现在的问题是,这样安宁吗?

4

0 回答 0