Я получаю сообщение «Ошибка полученного несовместимого экземпляра», когда пытаюсь разрешить поле узла с отношением «многие ко многим».Мне нужна помощь, чтобы решить эту проблему.Я перечислил модели, типы графиков в графене Джанго для справки.
Версия кода, которую я использую:
версия графена Джанго: 2.2.0
версии Python: 3.5.2
Джанговерсия: (2, 0, 8, 'final', 0)
models.py
---------
class ModelA:
name
description
Class ModelB:
model_code
description
field3
field4
model_links = models.ManyToManyField(ModelA, through='ModelAModelB')
class ModelAModelB:
model_a = models.ForeignKey('ModelA', null=True, on_delete=models.CASCADE, db_index=False)
model_b = models.ForeignKey('ModelB', null=True, on_delete=models.CASCADE, db_index=False)
class Meta:
#index is defined here
Graphene Django:
Type Definition
---------------
class ModelANode(DjangoObjectType):
class Meta:
model = ModelA
interfaces = (graphene.relay.Node, )
class ModelBNode(DjangoObjectType):
modellinks = graphene.Field(ModelANode)
class Meta:
model = ModelB
interfaces = (graphene.relay.Node, )
def resolve_modellinks(self, info, **args):
#how do i resolve this field
#I tried the below code
modelB = ModelB.objects.get(id=self.id)
modelaIDs = modelB.modelamodelb_set.select_related('model_a').values_list('model_a_id', flat=True)
modelARecs = ModelA.objects.filter(id__in=modelaIDs)
return [graphene.relay.Node.get_node_from_global_id(
'ModelANode',
info,
to_global_id('ModelANode', rec.id)
) for rec in modelARecs]
Graphql Call:
------------
allmodelBs {
model_code
description
field3
field4
modellinks {
id
}
}
Я получаю данные для полей модели B, но для ссылок на модели отображается следующая ошибка:
"errors": [
{
"message": "Received incompatible instance \"[None, None]\"."
},
{
"message": "Received incompatible instance \"[]\"."
}
]
Мне нужна помощь для разрешения отношений "многие ко многим". Поле узла.