2013-04-24 110 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