I'm new to graphene
python with. I have a User
model which looks as follows:
I'm using
SQLALCHEMY
andflask
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.
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)