ManyToManyField によって関連付けられた2 つModelResource
のAttack
とがあります。Packet
Packet.attacks
これは、1 ~ 3 個の攻撃がAttack.packets
含まれ、数百のパケットが含まれている場合に発生する傾向があります。
私がこれを行うことを計画している方法は次のとおりです。それぞれに、クエリセットを含むクエリセットへのリンクであり、クエリセットがネストされている場所でAttackResource
ある属性があります。Attack.packets
Attack.packets
AttackResource
すなわち:
/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 の要点に従ってリソースをネストしようとしました/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,
}