我刚开始在两个模型的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 / 但是如何检索与特定玩家相关联的分数?
我该如何实现?
非常感谢
答案 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