Ada*_*mas 5 api django tastypie
我有3个型号.游戏,玩家和作品.玩家附加到游戏上并且玩家附加到玩家.关系是简单的外键.
在检索游戏时,我还希望从所有玩家中检索所有棋子并将其包含在结果中.
class GameResource(ModelResource):
class Meta:
queryset = Game.objects.all()
resource_name = 'game'
allowed_methods = ['get']
class PlayerResource(ModelResource):
game = fields.ForeignKey(GameResource, 'game')
class Meta:
queryset = Player.objects.all()
resource_name = 'player'
allowed_methods = ['get']
class PieceResource(ModelResource):
player = fields.ForeignKey(PlayerResource, 'player')
class Meta:
queryset = Piece.objects.all()
resource_name = 'piece'
allowed_methods = ['get']
Run Code Online (Sandbox Code Playgroud)
我不知道这是怎么做到的.我最初改变了脱水,以便它只是做正确的查询,调用django serialize,并将它放在bundle中的一个新变量中.这对我来说似乎是一个躲闪.查询集的序列化也被tastypie再次序列化,导致它转义引号字符(urgh).
解决方案如下:
class GameResource(ModelResource):
players = fields.ToManyField('blokus.api.PlayerResource', 'player_set', full=True)
class Meta:
queryset = Game.objects.all()
resource_name = 'game'
allowed_methods = ['get']
authorization = Authorization()
class PlayerResource(ModelResource):
game = fields.ForeignKey(GameResource, 'game')
pieces = fields.ToManyField('blokus.api.PieceResource', 'piece_set', full=True)
class Meta:
queryset = Player.objects.all()
resource_name = 'player'
allowed_methods = ['get']
authorization = Authorization()
class PieceResource(ModelResource):
player = fields.ForeignKey(PlayerResource, 'player')
class Meta:
queryset = Piece.objects.all()
resource_name = 'piece'
allowed_methods = ['get']
authorization = Authorization()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1101 次 |
最近记录: |