У меня есть два ModelResource
s, Attack
и Packet
, связанные с ManyToManyField.Вложенные ToManyFields в django-tastypie
Это, как правило, показывает Packet.attacks
, содержащий 1-3 атак, и Attack.packets
, содержащий сотни пакетов.
Путь я планировал сделать это так: каждый AttackResource
имеет Attack.packets
атрибут, который является ссылкой на в QuerySet, содержащей Attack.packets
и где QuerySet вложен в 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's gist, чтобы иметь вложенные ресурсы, но переход на /api/attack/1/packets/
фактически не содержит пакетов, в которых attack.id находится в пакетах.
Моего 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