Django Tastypie定制模型方法

时间:2013-04-24 13:13:33

标签: django django-models tastypie

我刚开始在两个模型的Rest应用程序中使用带有Tastypie的Django。

为简洁起见,参数被剪断。

class Player(models.Model):

    pseudo = models.CharField(max_length=32, unique=True)

class Score(models.Model):

    level = models.IntegerField()
    score = models.IntegerField()
    player = models.ForeignKey(Player)

一个玩家可以有多个分数。 我可以得到这样的所有分数: / api / v1 / score / 但是如何检索与特定玩家相关联的分数?

我该如何实现?

非常感谢

1 个答案:

答案 0 :(得分:3)

您可以在/api/v1/score/上使用filtering,以便使用/api/v1/player/?player=1,例如

class ScoreResource(ModelResource):
    class Meta:
        ...
        filtering = {'player':ALL_WITH_RELATIONS}

或者您可以使用ToManyField作为播放器资源的一部分来访问分数,例如:

class ScoreResource(ModelResource):
    ...

class PlayerResource(ModelResource):
    score = fields.ToManyField(ScoreResource, 'scores', full=True)

然后,您将能够访问/api/v1/player/1/并将包含ScoresResource