Ho 3 modelli. Gioco, giocatore e pezzo. Un giocatore è attaccato ad un gioco e un pezzo è attaccato ad un giocatore. Le relazioni sono semplici chiavi esterne.In che modo includo una relazione inversa che non è diretta (passa attraverso un'altra risorsa) in django-tastypie?
Durante il recupero del gioco, desidero anche recuperare tutti i pezzi da tutti i giocatori e includerli nel risultato.
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']
Non ho idea di come sia fatto. Inizialmente ho cambiato il disidratato in modo che faccia semplicemente la query giusta, chiama serial django e lo inserisca in una nuova variabile nel pacchetto. Questo mi sembra un vantaggio. Anche il serialize del queryset è stato serializzato di nuovo da tastypie provocando l'escape dei caratteri di citazione (urgh).
risposta Cant come havn't ottenuto abbastanza reputazione. La soluzione è semplicemente aggiungere il campo tomany sia sul gioco che sul giocatore e impostare full = true su entrambi. –