ManyToManyFieldに関連する2つのModelResource
、Attack
およびPacket
があります。django-tastypieのネストされたToManyField
これは、1-3アタックを含むPacket.attacks
と数百パケットを含むAttack.packets
と表示される傾向があります。
私はこれを行うことを計画してきた方法
はこれです:各AttackResource
は、クエリセットが
AttackResource
にネストされ
Attack.packets
を含むクエリセットとへのリンクです
Attack.packets
属性を持っています。
すなわち:
/api/attack/1/ # contains attribute with URL of /api/attack/1/packets/
/api/attack/1/packets/ # contains all packets where attack with id=1 is in Packet.attacks
どのように私はこれを行うことができますか?
ネストされたリソースを持つためにcyberdelia's gistに従ってみましたが、/api/attack/1/packets/
に行くと、実際にはattack.idがpacket.attacksにあるパケットは含まれません。
私ModelResource
クラスは要旨と同一であり、その後、私の他のリソースは次のとおりです。
class AttackResource(ModelResource):
packets = fields.ToManyField('honeywall.api.PacketResource', 'packets', 'attack')
class Meta:
queryset = Attack.objects.all()
resource_name = 'attack'
と
class PacketResource(ModelResource):
attacks = fields.ToManyField('honeywall.api.AttackResource', 'attacks', 'packet')
class Meta:
queryset = Packet.objects.all()
resource_name = 'packet'
filtering = {
'attacks': ALL_WITH_RELATIONS,
}
私は料理でこれをやろうとしていると、今要旨としてきました。私は迷っている。より多くの情報で質問を更新する。 – rouge8