2013-04-24 84 views
1

我刚刚在带有两个模型的Rest应用程序中使用Django和Tastypie。
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/ 但我如何检索与特定玩家相关的分数?

我如何能实现呢?

非常感谢

回答

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