AssertionError: Найдены разные типы с одинаковыми именами в схеме

У меня есть два класса: Products и SalableProducts в моих моделях (SalableProducts наследуется от Products, поэтому в его базе данных есть все поля). Вот моя схема внизу

Я пытался включить свойство "exclude_fields", но это не сработало

Product_schema.py:

class Product(SQLAlchemyObjectType):
 class Meta:
  model = ProductModel
  interfaces = (relay.Node, )

class ProductConnections(relay.Connection):
 class Meta:
  node = Product

Salable_product_schema.py:

class SalableProduct(SQLAlchemyObjectType):
 class Meta:
  model = SalableProductModel
  interfaces = (relay.Node, )

class SalableProductConnections(relay.Connection):
 class Meta:
  node = SalableProduct

Schema.py:

class Query(graphene.ObjectType):
 node = relay.Node.Field()
 all_products = SQLAlchemyConnectionField(ProductConnections)
 all_salable_products = 
  SQLAlchemyConnectionField(SalableProductConnections)

Результатом является эта ошибка:

Ошибка Assertion: Найдены разные типы с одинаковыми именами в схеме: product_status, product_status.

(product_status - это свойство, разделяемое двумя классами по наследству)

0 ответов

У меня была такая же проблема. В моем конкретном случае проблема заключается в конфликте внутренней работы SQLAlchemy, когда используется обратная ссылка. Я бы проверил модель, чтобы увидеть, если это так.

Следующая статья имеет некоторую соответствующую информацию. В моем конкретном случае я попробовал то, что было предложено, и переименовал одно из соединений:

techniques = SQLAlchemyConnectionField(TechniqueConnection)
belts = SQLAlchemyConnectionField(BeltConnection)
belt_techniques = SQLAlchemyConnectionField(BeltTechniqueConnections)

Я добавил 's' к BeltTechniqueConnection. Родственная модель имеет много-много взаимосвязей с техникой и поясами.

Другие вопросы по тегам