pythongraphene-python

Graphene: ValueError: Unknown argument "__annotations__"


I'm new to graphene python with. I have a User model which looks as follows:

I'm using SQLALCHEMY and flask

from api import db
class User(db.Model):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True, nullable=False)
    userId = db.Column(db.String(50), nullable=False, unique=True)
    username = db.Column(db.String(50), nullable=False, unique=True)
    # profile = db.relationship('Profile', backref='profile', lazy=True, uselist=False)

    def __repr__(self) -> str:
        return '<User %r>' % self.username

In my schema package here is what i have:

from graphene_sqlalchemy import SQLAlchemyObjectType
class UserType(SQLAlchemyObjectType):
    class Meta:
        model = User

class CreateUser(graphene.Mutation):
    class Arguments:
        username: graphene.String(required=True)
    
    def mutate(root, info, username):
        print(username)
        user = UserType(
            username=username,
            userId = uuid.UUID()
        )
        db.session.add(user)   
        db.session.commit() 
        ok = True
        return CreateUser(ok=ok, user = user)

class Mutation(ObjectType):
    create_user = CreateUser.Field(
        name="create_user_mutation",
        description="creating a new user by providing the username."
    )

...

schema = Schema(query=Query, mutation=Mutation)

When i run the application I'm getting the following error:

...schema\__init__.py", line 33, in Mutation
create_user = CreateUser.Field()

....
raise ValueError('Unknown argument "{}".'.format(default_name))
ValueError: Unknown argument "__annotations__".

What may be possibly my problem here.


Solution

  • class CreateUser(graphene.Mutation): class Arguments: username: graphene.String(required=True)

    I believe it is a syntax issue ;)

    change:

    username: graphene.String(required=True)

    into:

    username = graphene.String(required=True)