GraphQL: AssertionError: Имена должны совпадать / ^ [_ a-zA-Z] [_ a-zA-Z0-9] * $ / - PullRequest
0 голосов
/ 13 февраля 2020

В настоящее время я использую графен и SQLAlchemy для интеграции GraphQL, и я сталкиваюсь с проблемой, когда в одном из столбцов в базе данных поставщиков есть «$» в имени столбца. Это явно противоречит соглашению об именах в GraphQL, поэтому следующее выдает ошибку AssertionError: Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "ENTRY_ID$_ASC" does not.

class MapsModel(Base):
    __tablename__ = 'maps$raw'
    id = Column(String(), primary_key=True)
    entry_id = Column('entry_id$', String(), ForeignKey('entry$raw.id')) #Complains about this

Я посмотрел вокруг, и кажется, что это потенциально можно решить, написав функцию распознавателя для entry_id $ столбец (на основе этого сообщения StackOverflow ), но я не совсем уверен, как реализовать эквивалент в SQLAlchemy без определения столбца в определении MapsModel

. Наш SQLAlchemyObjectType следующий (Я пытаюсь выяснить ????):

class Maps(SQLAlchemyObjectType):
    entry = graphene.Field(Entry)

    class Meta:
        model = MapsModel
        interfaces = (relay.Node, )

    def resolve_entry(self, info):
        return ????
...