Я хочу создать общий get_node_from_global_id, поэтому мне нужно получить корневую модель, запрашиваемую запросом, а затем вернуть строку из этой таблицы.Для этого я хочу использовать model = getattr(Query,info.field_name).field_type.Meta.model
.
Первая часть, getattr(Query,info.field_name).field_type
возвращает меня TableNameNode
из Query
с использованием info.field_name
.Но когда я пытаюсь получить доступ к ...Meta.model
, я получаю сообщение об ошибке, говорящее об отсутствии атрибута Meta
на TableNameNode
.Я вижу, что есть вложенный класс Meta
, так как я могу получить к нему доступ?
from graphene_django import DjangoObjectType
from graphene import relay
class CustomNode(relay.Node):
class Meta:
name = 'Node'
@staticmethod
def to_global_id(type, id):
#returns a non-encoded ID
return id
@staticmethod
def get_node_from_global_id(info, global_id, only_type=None):
user = info.context.user
model = getattr(Query,info.field_name).field_type.Meta.model
#return row here...
pass
class Query(object):
tablename = CustomNode.Field(TableNameNode)
class TableNameNode(DjangoObjectType):
class Meta:
model = TableName
interfaces = (CustomNode,)