У меня есть два ModelResource
s, Attack
и Packet
, связанные с ManyToManyField.
Это имеет тенденцию обнаруживаться с 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 находится в package.attacks.
Мой ModelResource
класс идентичен GIST, а затем мои другие ресурсы:
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,
}