1

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

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

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/ 但是如何检索与特定玩家关联的分数?

我该如何实施?

非常感谢

4

1 回答 1

3

您可以使用过滤/api/v1/score/因此您可以使用/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

于 2013-04-24T13:40:34.983 回答