我正在使用django-tastypie,我有这样的音乐列表资源:
/api/v1/musics
返回可用音乐列表,每个音乐对象都有一个名为votes的属性(它是一个IntegerField),我希望有一个端点,如:
/api/v1/musics/69/vote
用户可以发送这样的POST请求:
{
'vote':'+1'
}
我怎样才能做到这一点?
我的django模型:
class Music(models.Model):
title = models.CharField(_("Music Title"), max_length=255, null=True)
album = models.ForeignKey(Album, verbose_name=_("Album"), null=True)
artist = models.ForeignKey(Artist, verbose_name=_("Artist"), null=True)
genre = models.ForeignKey(Genre, verbose_name=_("Genre"), null=True)
language = models.ForeignKey(Language, verbose_name=_("Language"), null=True)
file = models.FilePathField(_("Track File Path"), max_length=1000)
length = models.IntegerField(verbose_name=_("Music length in seconds"), null=True)
is_playing = models.BooleanField(default=False)
current_playlist = models.BooleanField(default=False)
vote = models.IntegerField(default=0)
def __str__(self):
return "%s [Music Object]" % self.title
我的音乐资源定义:
class TrackResource(ModelResource):
class Meta:
queryset = musics_models.Track.objects.all()
list_allowed_methods = ['get']
detail_allowed_methods = ['get']
resource_name = 'tracks'
# authorization = DjangoAuthorization()
filtering = {
'title': ALL,
'is_playing': ['exact'],
'current_playlist': ['exact']
}
pass