我建模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"),
]
现在的问题是,这样安宁吗?